最近用JSONkit转换JSON数据,转换后做为UITableView的数据源,代码如下:
NSArray *result = [resultStr objectFromJSONString];
但调度时,只要向上拉动UITableView就会报错:
[__NSCFString objectAtIndex:]: unrecognized selector sent to instance 0x696b490
2012-06-03 21:28:03.316 FashionReport[11243:f803] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString objectAtIndex:]: unrecognized selector sent to instance 0x696b490'
*** First throw call stack:

我仔细检查,除了在- (void)dealloc 方法里释放了数据源变量,其它地方都没做什么操作赋值 ,后来想可能是JSONKit把数据源做了autorelease,于是把代码改为:
NSArray *result = [[resultStr objectFromJSONString] retain];
问题解决!
本文详细阐述了使用JSONKit将JSON数据转换为UITableView数据源时遇到的错误,即`__NSCFStringobjectAtIndex:`,并解释了问题原因在于JSONKit可能对数据源进行了自动释放。解决方案是在数据源赋值前使用`retain`方法来确保数据的持久性。通过此方法,有效地解决了在滚动UITableView时出现的崩溃问题。
1902

被折叠的 条评论
为什么被折叠?



