2010-04-30 128 views
3

我有下面的代碼位在我的方法之一:如何在代碼中訪問Core Data實體的屬性?

... 
NSNumber *selectedRecordID = [NSNumber numberWithInt:ABRecordGetRecordID(person)]; 
for (NSManagedObject *managedObject in fetchedResultsController.fetchedObjects) { 
    if (selectedRecordID == managedObject.contactID) { // this line generates a compiler error 
    // do some stuff 
    } 

指定的行生成編譯器錯誤「的東西不是一個結構或聯合申請‘的ContactID’。」但是,'contactID'是由提取結果控制器檢索的實體的屬性,並且存在於由Core Data生成的@property聲明中。

我在這裏錯過了什麼?預先感謝您提供的任何幫助。

回答

2

但'contactID'不是基類NSManagedObject類的屬性,它是您自己的實體類的屬性。對於要被編譯器識別的屬性,您需要使用合適的類型來聲明所取得的對象,例如:

for (MyEntity *managedObject in fetchedResultsController.fetchedObjects) { 
if (selectedRecordID == managedObject.contactID) { 
} 
+0

這並它;謝謝您的幫助。 – Andy 2010-04-30 13:22:50

4

您也可以使用KVC,並通過避免子類:

[managedObject valueForKey:@"contactID"]; 
相關問題