0

我正在将应用程序从 iOS5 迁移到 iOS6。在应用程序的一部分中,用户从屏幕底部的 uitabbarviewcontroller 中选择一个选项卡,然后将它们带到 uitableview。当用户选择选项卡时,代码会调用 Web 服务并列出附加到与 CoreData 一起存储并保存在设备本身上的一段数据的最新信息。

无论如何,当我在其中时,cellForRowAtIndexPath我从 Web 服务响应中构造了一个字符串,并将单元格的 detailTextLabel 上的 text 属性设置为该字符串的值。

这在 iOS5 中从未引起过问题。现在当我尝试在cellForRowAtIndexPath方法中使用这个字符串时,编译器似乎认为我的字符串真的是NSIndexPath变量。

例如,如果我尝试检查字符串的长度,应用程序会崩溃,并给我留下一条消息:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[NSIndexPath length]: unrecognized selector sent to class 0x396cae64'

同样,对于我想用该方法中的字符串做的任何其他事情。

其他几件事:

  1. 它发生在模拟器和设备上。
  2. 它与字符串本身无关;也就是说,它仍然在仍然安装了 iOS5 的设备上运行良好。另外,我可以将 detailTextLabel.text 设置为我用来设置字符串的值;我只是不能明确地使用字符串。

有没有其他人遇到过这个?如果是这样,您的解决方案是什么?我用谷歌搜索并没有看到任何东西。

4

1 回答 1

0

尝试复制该字符串,然后使用它。

首先复制该字符串

NSString *strTemp=[[NSString stringwithformat:@"%@",yourstring]copy];

现在尝试在你想使用的地方使用 strTemp。

于 2012-10-31T09:22:16.320 回答