核心数据继承和关系

时间:2011-02-14 13:37:31

标签: iphone inheritance core-data entity-relationship

我有以下数据模型:

实体用户,继承自实体联系人。

联系人与实体ContactInfo有一对一的关系。

用户与联系人有一对多的关系。

ContactInfo与Contact和Contact的反向关系依次与User有关。

我正在为User创建一个ContactInfo对象:

        ContactInfo *moInfo = [self createContactInfoManagedObject];
        moInfo.contact = userMO;
        userMO.contactInfo = moInfo;

其中createContactInfoManagedObject返回ContactInfo类型的对象。 我在线上发现以下异常

        moInfo.contact = userMO;


Unacceptable type of value for to-one relationship: property = "contact"; desired type = Contact; given type = NSManagedObject; value = <NSManagedObject: 0x3b2850> (entity: User; id: 0x3d4fa0 <x-coredata://4889CBE0-094B-49DB-B525-C87F7CD1AA68/User/p1> ; data: {
    contacts =     (
        "0x3d4fa0 <x-coredata://4889CBE0-094B-49DB-B525-C87F7CD1AA68/User/p1>"
    );
    user = "0x3d4fa0 <x-coredata://4889CBE0-094B-49DB-B525-C87F7CD1AA68/User/p1>";
    contactInfo = "0x3ebdc0 <x-coredata:///VCard/t128311BC-4B82-45CF-B87C-9AD38CBC89163>";
}).

我的问题是这里有什么问题? 当我尝试将User实体分配给联系人关系时,我认为继承有问题。请指教! 谢谢

2 个答案:

答案 0 :(得分:1)

您的userMO对象来自哪里?

错误消息表明它是NSManagedObject的实例,但它期待Contact的实例。

答案 1 :(得分:0)

尝试施放对象:

 ContactInfo *moInfo =(ContactInfo*) [self createContactInfoManagedObject];