【发布时间】:2020-09-11 03:09:07
【问题描述】:
我有一个奇怪的问题,即仅在一台 iOS 12 版本的设备上出现以下错误。为什么这只发生在这个操作系统上而不是其他操作系统上?
错误
Fatal Exception: NSInvalidArgumentException
-[NSTaggedPointerString stringValue]: unrecognized selector sent to instance 0xe4d38ae23d3589b7
JSON
"Name": "A",
"Teams": [
{
"Number": "3",
代码
poolTeam.number = [NSString stringWithFormat:@"%@%@", [poolJson objectForKey:@"Name"], [[teamJson objectForKey:@"Number"] stringValue]];
以下是将响应转换为 JSON 的代码
- (id)parseResponse {
@try
{
NSError *error = nil;
NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];
return jsonDict;
}
@catch(NSException *ex) {
return nil;
}
}
【问题讨论】:
-
展示你是如何创建
poolJson和teamJson的。 -
我添加了将响应转换为 NSDictionary 的代码,然后我开始阅读
-
看来
[teamJson objectForKey:@"Number"]已经是NSString了,你在上面调用stringValue。为什么只在 iOS12 中,这是一个很好的问题。你确定JSON是一样的吗?当它是 NSNumber 有时是 NSString 时会不会是个问题?因为根据你的 JSON,它是一个 NSString 是完全正常的...... -
所以我使用字符串和整数类型的 json
number测试了 iOS 13,并且都运行良好。因此,iOS 12 和 stringValue 出现了问题。 -
在 ios 13 上的工作方式相同:
-[NSTaggedPointerString stringValue]: unrecognized selector????♂️
标签: ios json objective-c iphone