昨天在寫一個(gè)字典數(shù)據(jù)的時(shí)候,在一個(gè)字典內(nèi)有18對(duì)鍵值對(duì)
其中有一個(gè)id的值為long型的,我就覺得既然你的值是long型的届良,那我要取你的值不是輕輕松松么,于是
long appID = [info[@"id"] longValue];
然后當(dāng)然報(bào)錯(cuò)了,
-[__NSCFString longValue]: unrecognized selector sent to instance 0x9bf8e10
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString longValue]: unrecognized selector sent to instance 0x9bf8e10'
百思不得其解风科,不對(duì)啊潘靖,我之前用還是可以的逐沙,怎么就報(bào)錯(cuò)了呢。最后在stackoverflow上面找到了答案搏讶。
原來佳鳖,@“id”所對(duì)應(yīng)得值,是一個(gè)id類型的值窍蓝,我們需要先將他強(qiáng)制轉(zhuǎn)換成NSString類型的值腋颠,然后再將NSString類型的值轉(zhuǎn)化成long型的。
NSString *strForId = dic[@"id"];
long appID = [strForId longLongValue];
或者直接強(qiáng)制轉(zhuǎn)換
long app ID = (long)[dic[@"id"] longValue];
果然再也不報(bào)錯(cuò)了~