我试图检查返回的查询中的关系对象是否为零。当我打印关系时,它在日志中字面上表示为nil,但是对nil进行检查不起作用。如果我然后检查对象中的属性,我会崩溃,因为它在返回的数组中不存在。
这不在日志中:
2015-05-22 10:20:18.458 Test [819:31066] (
"<Days: 0x7f859bfbcc30> (
entity: Days;
id: 0xd0000000002c0004 <x-coredata://FDD2AA25-AC20-4A8F-AF2C-59542B4BBD7B/Days/p11> ;
data: {\n
date = \"2015-05-22 07:46:30 +0000\";\n
formattedDate = \"2015-05-21 22:00:00 +0000\";\n
testrelationship = nil;\n
}
)"
这就是我想检查它是否为零的方式。
NSArray *results = [managedObjectContext executeFetchRequest:fetchRequest error:&error];
NSLog(@"%@", results);
Test *test = [results valueForKey:@"quantity"];
if (test.price == nil) {
有没有人知道如何检查关系对象是否为nil?
答案 0 :(得分:0)
这一行:
valueForKey
没有做你期望的事情,因为在数组上调用Test
会返回一个数组,而不是test.price
个对象。所以Test *test = [results firstObject];
正在尝试访问显然不存在的数组上的属性。
您可能需要以下内容:
quantity
(但我无法说明您为何使用mSocket.setSoTimeout(10000);
)。