我正在开发一款包含核心数据的应用程序.当我使用以下命令创建实例时:

let entity = NSEntityDescription.entityForName("User", inManagedObjectContext: appDelegate.managedObjectContext)
let user = User(entity: entity, insertIntoManagedObjectContext: appDelegate.managedObjectContext)

我在日志(log)中收到警告:

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

我怎么才能把它修好呢?

另一个问题是,如何在NSManagedObject子类中定义实例方法?

编辑:

我已经指定了实体的类,如以下屏幕截图所示:

在此处输入图像描述

推荐答案

Update for Xcode 7 (final): 不再需要在类前面加上模块名(就像在Xcode6和Xcode7的早期测试版中一样). 苹果文档Implementing Core Data Managed Object Subclasses已经 已相应更新.

数据模型判断器 现在,实体有两个字段"Class"和"Module":

enter image description here

当您为实体创建SWIFT托管对象子类时, "模块"字段设置为"当前产品模块",并且使用此设置 创建实例既可以在主应用程序中工作,也可以在单元测试中工作. 管理对象子类not必须标记为@objc(classname)(这是在https://stackoverflow.com/a/31288029/1187415中观察到的).

Alternatively,您可以清空"Module"字段(它将显示"None")并将 包含@objc(classname)的托管对象子类(已观察到 在https://stackoverflow.com/a/31287260/1187415).


Remark:本答案最初是为Xcode6编写的. 不同的Xcode7beta版本中有一些更改 尊重这个问题.因为这是许多人都接受的答案 点赞和链接,我试着总结一下情况 用于当前的Xcode7最终版本.

我自己做了"研究",并阅读了这个问题和类似问题的所有答案


上一个Xcode 6人的答案是:

正如Implementing Core Data Managed Object Subclasses所述,你必须

Ios相关问答推荐

SwiftUI文本编辑器内部滚动填充,无需文本裁剪

SwiftUI@Observable不跟踪父类属性中的更改以更新视图

如何在iPhone 15上消除.NET Maui中状态栏和页面之间的差距

如何删除点击时按钮的不透明动画?

每次我路由到应用程序的主屏幕时,都无法使组合订阅正常工作

不使用故事板创建 iMessage 应用程序

react 本机 |错误:无法解析 node_modules/react-native/index.js 中的模块

CarPlay:现在播放alert 可能吗?

如何将 -fobjc-arc-exceptions 标志正确添加到 XCode 中?

占位符文本未显示在 TextEditor 上

我正在try 制作一种 Select 器样式,例如设置中的外观 Select 器

使用 SceneKit 从 CapturedRoom.walls 重新创建 RoomPlan

iOS 如何使用 Alamofire 解析 JSON 可编码数组

SwiftUI 图像与下拉视图切换一起 skip

UIViewControllerRepresentable 在 Xcode 14 iOS 16 上崩溃

界面生成器 - 无法从路径加载设计对象(空)

Watchkit AppIcon - 名为AppIcon的应用图标集没有任何适用的内容

'+entityForName: nil 不是合法的 NSManagedObjectContext 参数 - 核心数据

Swift tableView 分页

Xcode 11 向后兼容性:UIWindowScene 仅在 iOS 13 或更高版本中可用