昨天在寫一個字典數(shù)據(jù)的時候,在一個字典內(nèi)有18對鍵值對
Paste_Image.png
其中有一個id的值為long型的,我就覺得既然你的值是long型的,那我要取你的值不是輕輕松松么,于是
long appID = [info[@"id"] longValue];
然后當(dāng)然報錯了,
-[__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”所對應(yīng)得值,是一個id類型的值,我們需要先將他強制轉(zhuǎn)換成NSString類型的值,然后再將NSString類型的值轉(zhuǎn)化成long型的。
NSString *strForId = dic[@"id"];
long appID = [strForId longLongValue];
或者直接強制轉(zhuǎn)換
long app ID = (long)[dic[@"id"] longValue];
果然再也不報錯了~