用到jsonkit的解析 就会发现这个问题的存在 增加retain以后 uitableview正常使用
用JSONKit转换的NSArray用UITableView的数据源总报错的解决方案
最近用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与UITableView兼容性
本文解决了使用JSONKit解析JSON数据并将其转换为UITableView数据源时出现的错误问题。通过对比autorelease与retain的方法,有效避免了因数据类型不匹配导致的崩溃。
1406

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



