【iOS】CoreData对象关联时,自动生成的关联属性类型不对

CoreData

【问题】建了两个Entities,可是自动生成的relationships在.h文件里类型为NSManageObject而不是想要的类别

【在.xcdatamodeld文件中建立关联对象时,一定要手动选中Inverse中被关联的目标属性】

【缘由】

在建立relationships的时候,xcode5会尝试“自动”关联。举个例子,如下两个Entities:BBUCoreDataEquip BBUCoreDataStage

BBUCoreDataEquip 新建一个指向 BBUCoreDataStageRelationshipstage。第一次添加的时候Inverse选项自动是No Inverse


图一

再给BBUCoreDataStage新建一个指向 BBUCoreDataEquip Relationshipequips。此时xcode5会自动关联到stage。


图二

回头看BBUCoreDataEquip 里的stage,Inverse选项依然是No Inverse,你只能手动选择关联到equips。问题就出在这里了,本来想让 BBUCoreDataStageequips属性是BBUCoreDataEquip类型,可是自动生成的BBUCoreDataStage.h 里的却是NSManagedObject类型。

编译代码时就会发现以前都没怎么关注的自动生成的CoreData对象,现在出了一堆编译warning。

【解决】

方法1. 手工改动BBUCoreDataStage.h 文件,把属性类型改成BBUCoreDataEquip类型,别忘了在头文件正式代码第一行写上@class BBUCoreDataEquip 

方法2. “重选一次!”。在图二中用鼠标重新选中一次equips的Inverse为stage,然后再从xcode5的菜单Editor->Create NSManagedObject SubClass...自动生成CoreData类。是的“重选一次”。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值