2015-05-22 26 views
0

我試圖檢查返回的查詢中的關係對象是否爲零。當我打印關係時,它在字面上直接說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) { 

有沒有人知道如何檢查關係對象爲零?

+0

1對1或1對多關係?什麼是崩潰?爲什麼不使用謂詞來過濾從提取返回的結果? – Wain

+0

1對1,崩潰是 –

+0

2015-05-22 10:34:20.167測試[884:34572] - [__ NSArrayI price]:無法識別的選擇器發送到實例0x7faa587f0750 2015-05-22 10:34:20.169測試[884 :34572] ***由於未捕獲的異常'NSInvalidArgumentException',原因:' - [__ NSArrayI price]:無法識別的選擇器發送到實例0x7faa587f0750' –

回答

0

這條線:

Test *test = [results valueForKey:@"quantity"]; 

不是做你所期望的,因爲在陣列上調用valueForKey返回一個數組,而不是一個Test對象。因此test.price正試圖訪問顯然不存在的數組上的屬性。

你可能想是這樣的:

Test *test = [results firstObject]; 

(但我不能告訴你爲什麼使用quantity)。

+0

'quantity'是Test實體中的一個屬性 –