iOS Swift Core Data 生成带有项目命名空间的 NSManagedObject

Posted

技术标签:

【中文标题】iOS Swift Core Data 生成带有项目命名空间的 NSManagedObject【英文标题】:iOS Swift Core Data generate NSManagedObject with project namespace 【发布时间】:2015-01-10 07:10:39 【问题描述】:

好的,所以我读到在 Swift 中,我们需要在检查器中为我们的核心数据实体类名称添加前缀,并加上我们的项目命名空间。

假设我的项目名为“MyProject”,因此对于DataModel.xcdatamodeld 中的每个核心数据实体,我添加“MyProject”:

MyProject.Book
MyProject.Library

当我在数据模型界面构建器中选择两个实体并开始时

Editor > Create NSManagedObject Subclass

它只生成了 1 个名为 MyProject 的类文件,而不是通常的

Book class
Library class

这就是我通常使用 Objective C 的方式。

Swift 是否有我不知道的额外步骤?

【问题讨论】:

很遗憾,没有步骤(由苹果提供),但请告诉我你在哪里“读到”了这个。我也对 XIB 做同样的事情,我只是对规范参考感兴趣:) @DanielGalasko 我在这里阅读了它***.com/questions/25076276/… 和Apple 的文档链接:developer.apple.com/library/prerelease/mac/documentation/Swift/… 在Implementing Core Data Managed Object Subclasses 部分下 【参考方案1】:

看起来像 Xcode 中的一个错误,正如 Martin R 的这篇 *** 帖子的 cmets 中所述,Apple 需要修复:

Unable to find specific subclass of NSManagedObject

一个 PITA 解决方法

我在读这个

http://jamesonquave.com/blog/core-data-in-swift-tutorial-part-1/

目前看来解决这个问题的方法是:

    在使用 using Editor 生成 NSManagedObject 子类之前,删除实体类名中的所有命名空间前缀

    选择您要为其生成 NSManagedObject 子类的所有实体并使用编辑器生成它们

    现在将命名空间前缀添加回所有实体类名称并保存数据模型文件。

我猜必须等待 Apple 修复它 =/

【讨论】:

以上是关于iOS Swift Core Data 生成带有项目命名空间的 NSManagedObject的主要内容,如果未能解决你的问题,请参考以下文章

在 Core Data 可转换字符串数组上返回匹配项的 Swift 谓词

iOS:Swift:Core Data:值不使用 Private ManagedObjectContext 存储

如何使用带有 Swift 的 Core Data 获取非标准(可转换)属性来更新/保存和持久化?

Swift - 如何检查现有的 Core Data Store iOS

iOS swift应用程序中Core Data的奇怪行为

(iOS Swift) 从 Core Data 获取记录返回致命错误或 nil