[__NSArrayM intValue]:发送到实例的无法识别的选择器
Posted
技术标签:
【中文标题】[__NSArrayM intValue]:发送到实例的无法识别的选择器【英文标题】:[__NSArrayM intValue]: unrecognized selector sent to instance 【发布时间】:2015-06-19 04:59:33 【问题描述】:我正在使用 MagicalRecord 从我的服务器中提取一个 json 文件。除了设备对象外,我所有的对象都可以正常加载。这是 JSON 文件的日志
"Equipment":[
"equipmentID":1,
"equipmentName":"Barbell",
"equipmentDescription":"Barbell"
]
我的设备类是一个非常基本的设置
@property (nonatomic, retain) NSNumber * equipmentID;
@property (nonatomic, retain) NSString * equipmentName;
@property (nonatomic, retain) NSString * equipmentDescription;
在数据模型中,设备 ID 为整数 16。如果将其更改为整数 64,则会出现此错误。
[__NSArrayM longLongValue]: unrecognized selector sent to instance
我不明白是什么问题,格式与同一个 JSON 文件中的其他对象一致。设备ID 显然是一个intValue,设备类设置为NSNumber,设备ID 为整数。
有什么帮助吗? Magical Record 有问题吗?
【问题讨论】:
这意味着您的数据是NSMutableArray
而不是NSNumber
。检查您的数据是否相同..
嗨。能否请您输入您尝试解析 json 字符串的代码...以便我们可以轻松识别实际问题。
@iphonic 但是这一行显示它是一个 NSNumber,它怎么会检测到它是 NSMutableArray? “设备ID”:1
【参考方案1】:
你需要这样写,
self.equipmentID = [NSNumber numberWithInt:[[[[myDic objectForKey:@"Equipment"] objectAtIndex:0] objectForKey:@"equipmentID"] intValue]]; // Or floatValue or whatever you need.
self.equipmentName = [[[myDic objectForKey:@"Equipment"] objectAtIndex:0] objectForKey:@"equipmentName"];
self.equipmentDescription = [[[myDic objectForKey:@"Equipment"] objectAtIndex:0] objectForKey:@"equipmentDescription"];
【讨论】:
【参考方案2】:所以事实证明我的 json 是一个数组格式(应该从括号中知道)。我使用 MR_importFromObject 而不是 MR_importFromArray。我太傻了。
【讨论】:
以上是关于[__NSArrayM intValue]:发送到实例的无法识别的选择器的主要内容,如果未能解决你的问题,请参考以下文章
-[__NSArrayM 长度]:无法识别的选择器发送到实例 0x145ecca0
目标c [__NSArrayM objectForKey:]:发送到实例的无法识别的选择器
由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'-[__NSArrayM itemName]:无法识别的选择器发送到实例
领域:获取 -[__NSArrayM UTF8String]:无法识别的选择器发送到实例
Xcode -[__NSArrayM isEqualToString:]:无法识别的选择器发送到实例 0x7a1248d0 - 如何修复?