用JSONKit转换的NSArray用UITableView的数据源总报错的解决方案

本文详细阐述了使用JSONKit将JSON数据转换为UITableView数据源时遇到的错误,即`__NSCFStringobjectAtIndex:`,并解释了问题原因在于JSONKit可能对数据源进行了自动释放。解决方案是在数据源赋值前使用`retain`方法来确保数据的持久性。通过此方法,有效地解决了在滚动UITableView时出现的崩溃问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


最近用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];

 问题解决!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值