具有int值的属性的值不可接受的值

时间:2013-06-17 09:16:12

标签: iphone objective-c arrays core-data nsnumber

我使用核心数据,我尝试将WS的int值(id)分配给核心数据属性(Integer 32)。该属性是NSNumber,当我编码时:

        NSNumber *v = [responseMembers valueForKey:@"id"];
        newMember.idMember = v;

并且,出现此错误:

2013-06-17 11:08:24.407 EPNet[2190:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unacceptable
     

属性的值类型:property =“idMember”;期望的类型=   NSNumber的;给定type = __NSArrayI;值=(       1,       2,       3,       4,       10,       14,       17,       5,       6,       7,       8,       9,       11,       12,       13,       15,       16,       18,       19,       20)。'

你能帮帮我吗?

1 个答案:

答案 0 :(得分:1)

属性idMember是NSNumber,但由于某种原因,您的密钥@"id"的值似乎是一个数组(看起来像所有ID都在哪里?)

编辑: responseMembers是NSMutableArray,您不应该要求valueForKey。尝试这样的事情:

foreach (NSDictionary *member in responseMembers)
{
    NSNumber *v = [member valueForKey:@"id"];
    //do something with this id
}

您正在阅读的json看起来像一个包含许多词典的数组,并且您的ID更深一层:

[
  //first member
  {
    "content": "some entry",
    "id": 5,
    // some more attributes
  },
  //second member
  {
    "content": "some entry",
    "id": 5,
    // some more attributes
  },
  //and so on
]