2011-06-22 45 views
1

我正在尝试使用也是瞬态的未定义属性。这个属性的类型是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; 

我得到一个崩溃我是否有足够的最后一行注释掉或不。如果它注释掉,它给了我这个错误:

Unresolved error Error Domain=NSCocoaErrorDomain Code=1570 "The operation couldn’t be completed. (Cocoa error 1570.)" UserInfo=0xe0138c0 {NSValidationErrorObject= (entity: Person; id: 0xc611e10 ; data: { abGlobalID = 6; abRecordPerson = nil; })

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

CoreData: error: Property 'setAbRecordPerson:' is a scalar type on class 'Person' that does not match its Entity's property's scalar type. Dynamically generated accessors do not support implicit type coercion. Cannot generate a setter method for it. 2011-06-21 20:07:18.100 TestCoreDataLab[79616:207] -[Person setAbRecordPerson:]: unrecognized selector sent to instance 0x6d10f40

任何帮助不胜感激。

回答

0

因此,您已经定义了获取者-abRecordPerson,但您是否创建了-setAbPersonRecord?这个错误似乎表明你没有,看起来这是问题的根源。

+0

我有,但由于iOS5有一些问题。结果发现,解决了这个问题后,二传手确实奏效。 –