我正在将应用程序从 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'
同样,对于我想用该方法中的字符串做的任何其他事情。
其他几件事:
- 它发生在模拟器和设备上。
- 它与字符串本身无关;也就是说,它仍然在仍然安装了 iOS5 的设备上运行良好。另外,我可以将 detailTextLabel.text 设置为我用来设置字符串的值;我只是不能明确地使用字符串。
有没有其他人遇到过这个?如果是这样,您的解决方案是什么?我用谷歌搜索并没有看到任何东西。