2012-06-12 37 views
2

我正在嘗試使用KVC來檢索使用核心數據構建的自定義NSManagedObject實體的屬性的值。我試圖訪問一個屬性幾個級別深時,我得到一個UnknownKeyException,對於我的生活,我無法弄清楚爲什麼...爲什麼我的NSManagedObject不符合KVC標準?

根實體被稱爲「Catch」。它具有許多屬性:重量,長度等。它與另一個名爲「物種」的實體也有一對一的關係。物種有一個名稱屬性定義爲NSString。

所以:

//this will output the species name (i.e. "Brook Trout") 
NSLog(@"Catch.species.name = %@", catch.species.name); 

//this will throw a NSUnknownKeyException 
NSLog(@"Catch.species.name = %@", [catch valueForKey:@"species.name"]); 

//but this works...!? 
Species *species = (Species*)[catch valueForKey:@"species"]; 
NSLog(@"Species.name = %@", species.name); 

特定異常細節:

*終止應用程序由於未捕獲的異常 'NSUnknownKeyException',原因:「[valueForUndefinedKey:]:實體抓不關鍵符合關鍵字「species.name」的值編碼。

有沒有人比我更瞭解這個東西知道發生了什麼?

在此先感謝!

回答

8

嘗試使用-valueForKeyPath:而不是-valueForKey:來獲得關鍵鏈,即在這種情況下的「species.name」。

+0

就是這樣。謝謝! – pdriegen

相關問題