我使用核心数据,并尝试将 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
type of value for attribute: property = "idMember"; desired type = NSNumber; given type = __NSArrayI; value = ( 1, 2, 3, 4, 10, 14, 17, 5, 6, 7, 8, 9, 11, 12, 13, 15, 16, 18, 19, 20 ).'
你能帮我吗?
最佳答案
属性 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
]
关于iphone - 具有 int 值的属性的值类型 Not Acceptable ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17144104/