编译报错:-[__NSCFConstantString stringValue]: unrecognized selector sent to instance

编译控制台报错:

NSInvalidArgumentException -[__NSCFConstantString stringValue]: unrecognized selector sent to instance 0x1070fcf80

错误原因:

指针指向的内容直接放在了指针变量的内存地址中,因为在 64 位环境下指针变量的大小达到了 8 位足以容纳一些长度较小的内容。这个类型是标签指针字符串,这是苹果在 64 位环境下对 NSString,NSNumber 等对象做的一些优化。

本应该是对一个NSNumber对象进行stringValue,但却对一个string对象进行了stringValue。由于从服务器端接受的字段数据类型在string和value之间飘忽不定,于是我找后台让他们确定字段的数据类型,后台的人说,他们PHP语言对数值型和string不作区分。这就坑了客户端了,只能自己处理了。

解决方案:

1.统一转成NSNumber

NSNumber *uid = [NSNumber numberWithInteger:[[resultData objectForKey:@"appid"] integerValue]];

2.统一转成NSString 

NSString *appid = [NSString stringWithFormat:@"%@",resultData[@"appid"]];

你可能感兴趣的:(编译报错:-[__NSCFConstantString stringValue]: unrecognized selector sent to instance)