我试图在我的应用中使用相同的核心数据模型以及扩展,但我不确定如何在2之间共享核心数据模型。核心数据模型的类使用命名空间classname,所以当我尝试获取扩展中的对象时,我无法加载名为&#34的类;"错误。
CoreData:警告:无法加载名为' Dali.Alarm'对于实体 '警报&#39 ;.找不到类,而是使用默认的NSManagedObject。
有没有在类名中不使用命名空间,或者有没有办法让扩展继承主项目的命名空间?
答案 0 :(得分:10)
我之前被困在了这个问题上。看起来像是一个真正的问题,将它作为Apple的功能请求/错误提交也没有什么坏处。
与此同时,您可以通过两个步骤绕过它。首先,使用@objc(ClassName)
标记NSManagedObject子类。只需将其插入类声明上方:
@objc(ClassName)
class ClassName: NSManagedObjectSubclass {
@NSManaged var name : String
}
其次,返回托管对象模型,并从您正在使用的实体的检查器中的“类”名称字段中删除命名空间。
在阅读本文之后,这对我有用:I can't use my core data model in two targets in a Swift project