我的一种方法中有以下代码:

...
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声明中。

我在这里想念什么?在此先感谢您提供的任何帮助。

最佳答案

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

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

08-05 02:11