core-data - Swift - 在应用程序组中共享核心数据模型(带扩展)

标签 core-data swift widget

我试图在我的应用程序和扩展中使用相同的核心数据模型,但我不确定如何在两者之间共享核心数据模型。核心数据模型的类使用带有类名的命名空间,所以当我尝试获取扩展中的对象时,出现无法加载名为“”的类的错误。

CoreData: warning: Unable to load class named 'Dali.Alarm' for entity 'Alarm'. Class not found, using default NSManagedObject instead.

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

Core Data Entity

最佳答案

我早些时候被困在这个问题上。似乎是一个真正的问题,将它作为功能请求/错误提交给 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

关于core-data - Swift - 在应用程序组中共享核心数据模型(带扩展),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26443068/

相关文章:

ios - UIPickerView + 核心数据

swift - 当连接到前一个 View Controller 时,按钮会忽略操作

Flutter 将内容包含到页面中

由于验证规则上下文导致 iOS 核心数据保存 MOC 问题

ios - Restkit 和 CoreData 错误。无法调用 NSManagedObject 上的指定初始值设定项

ios - 重置 uicollectionview 的 indexPath

swift - 从 Storyboard中截断的容器 ViewController 推送 ViewController

c++ - Qt Widgets,是否必须将包含的小部件设置为父级?

android - 如何在我的项目中处理 android widget 中的 AppWidgetProvider?

ios - RestKit多对多映射,怎么做?