昨天在写一个字典数据的时候,在一个字典内有18对键值对
其中有一个id的值为long型的,我就觉得既然你的值是long型的,那我要取你的值不是轻轻松松么,于是
long appID = [info[@"id"] longValue];
然后当然报错了,
-[__NSCFString longValue]: unrecognized selector sent to instance 0x9bf8e10
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString longValue]: unrecognized selector sent to instance 0x9bf8e10'
百思不得其解,不对啊,我之前用还是可以的,怎么就报错了呢。最后在stackoverflow上面找到了答案。
原来,@“id”所对应得值,是一个id类型的值,我们需要先将他强制转换成NSString类型的值,然后再将NSString类型的值转化成long型的。
NSString *strForId = dic[@"id"];
long appID = [strForId longLongValue];
或者直接强制转换
long app ID = (long)[dic[@"id"] longValue];
果然再也不报错了~