核心数据:使用未定义的瞬态属性

时间:2011-06-22 03:12:49

标签: ios ios4 core-data

我正在尝试使用也是Transient的Undefined属性。该属性的类型为ABRecordRef(它甚至不是Objective-C中的对象),我可以使用ABRecordID获取对象,这是我在模型中持久化的int32。

我轻松搞定了吸气剂:

- (ABRecordRef) abRecordPerson
{
    ABAddressBookRef book = ABAddressBookCreate();
    ABRecordRef record = ABAddressBookGetPersonWithRecordID(book, [self.abGlobalID intValue]);
    return record;
}

这很好,直到我尝试保存一个新对象:

Person *newManagedObject = [NSEntityDescription insertNewObjectForEntityForName:[entity name] inManagedObjectContext:context];
    newManagedObject.abGlobalID = [NSNumber numberWithInt: recordID];
    //newManagedObject.abRecordPerson = person;

我是否有最后一行被注释掉,我遇到了崩溃。如果它已被注释掉,它会给我这个错误:

  

未解决的错误错误   Domain = NSCocoaErrorDomain Code = 1570   “这项行动无法完成。   (可可错误1570.)“   的UserInfo = 0xe0138c0   {NSValidationErrorObject =(entity:Person; id:   0xc611e10      ;数据:{       abGlobalID = 6;       abRecordPerson = nil; })

似乎认为abRecordPerson是零,所以我试着设置它,但后来我得到了这个错误:

  

CoreData:错误:属性   'setAbRecordPerson:'是标量类型   在类'人'上不匹配   它的实体属性的标量类型。   动态生成的访问器不会   支持隐式强制。   无法生成setter方法   它。   2011-06-21 20:07:18.100   TestCoreDataLab [79616:207] - [人   setAbRecordPerson:]:无法识别   选择器发送到实例0x6d10f40

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

所以你已经定义了getter -abRecordPerson,但是你创建了一个-setAbPersonRecord吗?错误似乎表明你没有,看起来这就是问题的根源。