我的一个方法中有以下代码:
...
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声明中。
我在这里缺少什么?提前感谢您提供任何帮助。
答案 0 :(得分:4)
您也可以使用KVC并避免通过以下方式进行子类化:
[managedObject valueForKey:@"contactID"];
答案 1 :(得分:2)
但是'contactID'不是基类NSManagedObject
类的属性,它是您自己的实体类的属性。对于编译器要识别的属性,您需要使用适当的类型声明获取的对象,例如:
for (MyEntity *managedObject in fetchedResultsController.fetchedObjects) {
if (selectedRecordID == managedObject.contactID) {
}