Swift - 在App Group中共享核心数据模型(带扩展名)

时间:2014-10-18 18:22:19

标签: core-data swift widget

我试图在我的应用中使用相同的核心数据模型以及扩展,但我不确定如何在2之间共享核心数据模型。核心数据模型的类使用命名空间classname,所以当我尝试获取扩展中的对象时,我无法加载名为&#34的类;"错误。

  

CoreData:警告:无法加载名为' Dali.Alarm'对于实体   '警报&#39 ;.找不到类,而是使用默认的NSManagedObject。

有没有在类名中不使用命名空间,或者有没有办法让扩展继承主项目的命名空间?

Core Data Entity

1 个答案:

答案 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