核心数据 - 检查关系是否为零

时间:2015-05-22 08:30:48

标签: ios objective-c core-data

我试图检查返回的查询中的关系对象是否为零。当我打印关系时,它在日志中字面上表示为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?

1 个答案:

答案 0 :(得分:0)

这一行:

valueForKey

没有做你期望的事情,因为在数组上调用Test会返回一个数组,而不是test.price个对象。所以Test *test = [results firstObject]; 正在尝试访问显然不存在的数组上的属性。

您可能需要以下内容:

quantity

(但我无法说明您为何使用mSocket.setSoTimeout(10000); )。