編譯控制臺報錯:
NSInvalidArgumentException?-[__NSCFConstantString stringValue]: unrecognized selector sent to instance 0x1070fcf80
錯誤原因:
指針指向的內容直接放在了指針變量的內存地址中,因為在 64 位環(huán)境下指針變量的大小達到了 8 位足以容納一些長度較小的內容。這個類型是標簽指針字符串,這是蘋果在 64 位環(huán)境下對 NSString,NSNumber 等對象做的一些優(yōu)化。
本應該是對一個NSNumber對象進行stringValue,但卻對一個string對象進行了stringValue。由于從服務器端接受的字段數(shù)據(jù)類型在string和value之間飄忽不定,于是我找后臺讓他們確定字段的數(shù)據(jù)類型,后臺的人說,他們PHP語言對數(shù)值型和string不作區(qū)分。這就坑了客戶端了,只能自己處理了。
解決方案:
1.統(tǒng)一轉成NSNumber
NSNumber *uid = [NSNumber numberWithInteger:[[resultData objectForKey:@"appid"] integerValue]];
2.統(tǒng)一轉成NSString?
NSString *appid = [NSString stringWithFormat:@"%@",resultData[@"appid"]];