加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift – 核心数据:无法将类型“MyType_MyType_2”的值转换为My

发布时间:2020-12-14 05:50:44 所属栏目:百科 来源:网络整理
导读:我有一个Objective-C模型类MyType。这个类用于Swift代码: NSEntityDescription.insertNewObjectForEntityForName("MyType",inManagedObjectContext: context) as! MyType 作为!转换导致错误消息 Core Data: Could not cast value of type 'MyType_MyType_2
我有一个Objective-C模型类MyType。这个类用于Swift代码:
NSEntityDescription.insertNewObjectForEntityForName("MyType",inManagedObjectContext: context) as! MyType

作为!转换导致错误消息

Core Data: Could not cast value of type 'MyType_MyType_2' (0x7be99a30) to MyType (0xf33db74).

如果我把它转换为NSManagedObject它可以工作。当我打印结果时,我可以看到,它是一个实际的MyType实例:

<MyType: 0x7ae06d50> (entity: MyType; id: 0x7aeba6d0 <x-coredata:///MyType/t957F2860-85F8-46E0-B6D6-4D1DF6C4EC613> ; data: { 
    ...the fields...
})

这里发生了什么? MyType_MyType_2的名字来自哪里?

当我遇到这个问题的时候,是因为我忘了在实体上设置“课”。这是我想出来的:

>在文件结构/项目中单击.xcdatamodelId文件
导航器窗格(最左边)。
>选择您遇到问题的实体。
>在“实用程序”窗格(最右侧)中,查找看起来像1997年手机的图标,即数据模型检查器。
>在实体设置下,您应该看到两个字段“名称”和“类” – 使用您使用的类的名称设置“类”(通常与“名称”相同)。

您甚至会注意到,在执行以下步骤之前,默认的“类”是NSObject,反映了错误消息。我发现了一些程序化的方法,但这似乎是最简单/最快捷的解决方案。

我应该注意到我的模型WAS是用Swift编写的,所以我必须添加@zellb提到的@objc(Entity)互操作性引用。但是,只要您正确地执行该部分(这将导致与我的理解不同的无关错误),那么这不应该对解决方案产生影响。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读