如何在代码中访问Core Data实体属性?

时间:2010-04-30 12:27:23

标签: iphone 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 个答案:

答案 0 :(得分:4)

您也可以使用KVC并避免通过以下方式进行子类化:

[managedObject valueForKey:@"contactID"];

答案 1 :(得分:2)

但是'contactID'不是基类NSManagedObject类的属性,它是您自己的实体类的属性。对于编译器要识别的属性,您需要使用适当的类型声明获取的对象,例如:

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