【发布时间】:2015-11-09 23:25:44
【问题描述】:
我有一个 Objective-C 模型类 MyType。这个类在 Swift 代码中使用:
NSEntityDescription.insertNewObjectForEntityForName("MyType", inManagedObjectContext: context) as! MyType
as! 转换导致错误消息
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这个名字是怎么来的?
【问题讨论】:
-
你在 MyType 类声明前加了
@objc(MyType)吗? -
不,正如我所说,模型 MyType 已经是 Objective-C 代码。
-
我有同样的问题,在项目和其他目标中工作正常,但在我的测试目标上没有工作。此外,它正在工作,在 XCode 更新后不知道它停止了哪个版本(当前为 8.3.2)。由于这次崩溃,我无法运行我的测试。知道如何解决吗?下面的建议没有帮助:(
标签: swift core-data casting nsmanagedobject