我正在使用MagicalRecord从服务器中提取json文件。除设备对象外,我的所有对象均加载正常。这是JSON文件的日志

    "Equipment":[
  {
    "equipmentID":1,
    "equipmentName":"Barbell",
    "equipmentDescription":"Barbell"
  }
]

我的设备 class 是一个非常基本的设置
@property (nonatomic, retain) NSNumber * equipmentID;
@property (nonatomic, retain) NSString * equipmentName;
@property (nonatomic, retain) NSString * equipmentDescription;

在数据模型中,我的equipmentID为Integer16。如果将其更改为Integer 64,则会收到此错误。
[__NSArrayM longLongValue]: unrecognized selector sent to instance

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

有什么帮助吗? Magical Record是否有bug?

最佳答案

你需要这样写

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

10-04 22:14