[__NSArrayM intValue]:发送到实例的无法识别的选择器

时间:2015-06-19 04:59:34

标签: ios json magicalrecord

我正在使用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;

在数据模型中,我将equipmentID作为Integer 16.如果我将其更改为Integer 64,那么我会收到此错误。

[__NSArrayM longLongValue]: unrecognized selector sent to instance

我不明白是什么问题,格式与同一JSON文件中的其他对象一致。设备ID显然是一个intValue,而设备类设置为NSNumber,设备ID为整数。

有任何帮助吗? Magical Record有错误吗?

2 个答案:

答案 0 :(得分: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"]; 

答案 1 :(得分:0)

事实证明我的json是一种数组格式(应该从括号中知道)。我使用MR_importFromObject而不是MR_importFromArray。非常愚蠢的我。