編譯報錯:-[__NSCFConstantString stringValue]: unrecognized selector sent to instance

編譯控制臺報錯:

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"]];

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容