Xcode 8 中的 Core Data Codegen 失败

2024-01-02

我有一个 iOS 应用程序,其中包含具有 6 个实体的核心数据模型。实体Name设置如下:

班级名称:Name

Module: 当前产品模块

可待因:类定义

(所有其他 5 个实体的设置类似)。

问题1(已自行修复,但留给后代)

代码是在派生数据文件夹中生成的......不是像预期的那样作为〜类定义,而是作为扩展(命名为Name+CoreDataProperties.swift。 Codegen 是否设置为类定义或类别/扩展似乎并不重要 - 我仍然得到相同的结果。

好吧,保持这个想法 - 突然之间,类文件和扩展文件都被生成了……看起来您需要删除项目的派生数据文件夹并在更新之间重新启动 Xcode。忽略问题1

问题2

生成的文件忽略数据模型字符串属性和关系的可选标志设置 - 它们全部作为可选选项生成

问题3(已自行修复,但留给后代)

有序关系生成为OrderedSet(和编译错误)而不是NSOrderedSet(当它们重新生成时无法更改它们)

我的解决方法是暂时添加到项目中...... public typealias OrderedSet = NSOrderedSet

好的,现在编译器错误已经消失了,并且OrderedSet似乎得到了认可。忽略问题 3。

问题4

以上这些都不重要,因为编译器找不到刚刚生成的文件。为了Name上面的实体:

:0: 错误:没有这样的文件或目录: '/Users/ashleymills/Library/Developer/Xcode/DerivedData/-grfqveelvqtlydbpwjmfdietnrss/Build/Intermediates/.build/Debug-iphonesimulator/.build/DerivedSources/CoreDataGenerate//.Name+CoreDataClass.swift' :0: 错误:没有这样的文件或目录: '/Users/ashleymills/Library/Developer/Xcode/DerivedData/-grfqveelvqtlydbpwjmfdietnrss/Build/Intermediates/.build/Debug-iphonesimulator/.build/DerivedSources/CoreDataGenerate//.Name+CoreDataProperties.swift'

它正在查找文件的派生数据.Name+CoreDataClass.swift and .Name+CoreDataProperties.swift- 注意“.”在文件名的前面。 (作为临时修复,我将生成的文件添加到项目中)

我认为我做错了什么,就好像每个人都是这样,没有人能够构建核心数据项目……或者这些错误是否需要提出?

干杯 灰

(也在 Apple 开发论坛上提出)


关于问题1,设置Codegen.xcdatamodel 中实体的检查器中的弹出窗口应该像这样工作:

类别/扩展告诉 Xcode 生成one文件,类名+CoreDataGenerateProperties。

类定义告诉 Xcode 生成two文件,上面命名的文件,加上 ClassName+CoreDataClass。

然而,Xcode 8.2 中似乎存在一个错误。如果在更改这些弹出窗口之一后,您只是构建 (⌘B) 或运行 (⌘R),则您的更改将不会生效。例如,如果您从类定义 to 类别/扩展即使手动删除了第二个文件,它也会重新出现。您甚至可能会发现弹出窗口恢复为原始设置。

为了使这些弹出窗口中的更改生效,您必须

  1. Save(⌘IS) .xcdatamodel 文件。
  2. 关闭所有项目窗口。
  3. 重新打开项目。

在下一次构建期间(如果故事板中有@IBInspectable,则在项目打开时可能会自动发生),将生成或删除派生数据中受影响的文件以符合您的新设置。

2016 年 12 月 22 日更新:谢谢您的评论,Ashley。我现在已经写完并将其提交给 Apple Bug Reporter:29789727。2017-02-08 更新:Apple 已关闭 29789727,因为据称它重复了 21205277。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Xcode 8 中的 Core Data Codegen 失败 的相关文章

  • 在视图之间传递核心数据实体变量

    我无法理解如何在视图之间使用核心数据实体变量 为了更好地理解我的问题是什么 我的代码如下 View A 基本上 您必须将完整预算实体或相关预算实体的 ID 从视图 A 传递到视图 B 由于不知道您的应用程序的视图层次结构和逻辑 我假设您选择
  • DatePicker 停止 CoreData 按预期工作

    我有一个应用程序 它保存 UIDatePicker 中的文本和日期 然后在您回到 UIDatePicker 中的该日期时显示该注释 效果很好 只有我发现将 UIDatePicker 日期设置为今天会停止 CoreData 工作 只有当我运行
  • NVActivityIndi​​catorView 仅适用于特定视图

    我正在使用这个库https github com ninjaprox NVActivityIndi catorView https github com ninjaprox NVActivityIndicatorView用于显示加载指示器
  • 在 Firebase 和 Swift 3 中注册之前如何验证用户名是否存在?

    我整合了五个视图控制器的注册流程 而不是一个用于 Firebase 注册的中央 VC 通常情况下 在注册之前会出现数据丢失的问题 但我会以编程方式将所有输入的值通过 segue 推送到最终确认页面 并将数据发送到 Firebase 最终进行
  • 在 Swift 3 中通过 Core Graphics 绘制文本

    背景 我正在使用 Core Graphics 的 UIImageView 上绘图 我想最终在核心图形绘图上绘制一个文本字符串 这个 hackingwithswift com https www hackingwithswift com ex
  • UITableView 中具有多个部分的搜索控制器

    我有一个 UIViewController 其中有一个 UITableView 在该表视图内我有多个部分 其中有一些项目 我必须在该表视图内使用项目名称进行搜索 我已经在我的视图控制器中声明了这一点 let searchController
  • iOS 10 和 swift 2.3 中支持的InterfaceOrientations

    我正在使用 Xcode 8 GM 并且有一个旧项目需要更新为 iOS 10 我发现我当前使用 Swift 2 2 版本的应用商店构建在 iOS 10 上运行时不支持所需的界面方向功能 简而言之 当我重写supportedInterfaceO
  • UnsafePointer 在 swift 3 中不再工作

    当我从 swift 2 转换为 swift 3 后 下面提到的行会弹出一个错误 let value UnsafePointer
  • iOS 7 NS 单线程安全合并冲突

    重新排序两行后 在单线程应用程序上保存简单的数据时遇到问题 我已经成功地简化了编码以重现错误 并且希望其他人尝试这一点时得到第二个意见 这是一次健全性检查 因为我怀疑 iOS 7 引入的核心数据问题 而这在 iOS 6 中工作正常 首先 启
  • 如何在 Cocoa with Core Data 中上传和存储文件?

    我有一个应用程序 我希望能够将文件上传到其中 我可以想象序列化数据 将其放入数组中 然后序列化数组并将其放入核心数据中 但这似乎不太正确 我还可以想象将文件复制到应用程序的支持文件中 获取这些文件的 NSURL 并存储数组或 NSURL 无
  • NSPredicate 查询不包含特定字符串

    对这个问题进行了高低查找 但找不到我的答案 我正在查询核心数据以查找不等于指定字符串的所有记录 例如 所有不等于当前会话ID的记录 我已经尝试过这些但无济于事 NSPredicate predicate NSPredicate predic
  • iOS 10 无声推送通知不触发后台应用程序

    我有一个应用程序 我试图在其中接收和处理静默推送通知 我正在注册 APN 如下所示 UNUserNotificationCenter currentNotificationCenter delegate self UNUserNotific
  • swift 3.0 中的 Sha 256 加密语法错误

    func SHA256 gt String let data self data using String Encoding utf8 let res NSMutableData length Int CC SHA256 DIGEST LE
  • Swift 3:绘制矩形

    我刚接触 swift 三天 我正在尝试弄清楚如何绘制矩形 我对这门语言太陌生 不知道要扩展的类和要重写的方法 并且我四处寻找示例代码 但似乎没有任何效果 我将其归因于我对 swift 3 的使用 我现在正在尝试的是 import UIKit
  • Xcode 9.2 UIDocumentBrowserViewController:无法从 bookmarkableString 创建 url

    Update Xcode 9 3 已修复它 在创建 UIDocument 文件时UIDocumentBrowserViewController 默认 错误 无法解析书签 错误 错误域 NSFileProviderInternalErrorD
  • AVAssetExportSession.requestExportSession 回调从未被调用(swift 3,iOS10)

    以下代码从不调用导出回调 导出会话创建得很好 我没有看到任何错误 也没有任何进展 CPU 为 0 我认为没有例外 状态为 1 进行中 进度为 0 错误为零 视频在画廊中播放 我可以成功获取视频的图像 我已将代码提取到单个 UIViewCon
  • Swift 3 Web 视图

    所以我刚刚更新到新的Xcode8 and Swift3但现在我的网络视图不起作用 这是我使用的代码 UIWebView loadRequest webView NSURLRequest URL NSURL string http hardw
  • 两个 UIBezierPaths 交集作为 UIBezierPath

    我有两个UIBezierPaths 一个表示图像部分的多边形 另一个是要在其上绘制的路径 我需要找到它们之间的交集 以便只有该交集区域内的点才会被着色 有没有方法在UIBezierPath可以找到两条路径之间的交点 或新路径 我不知道获取作
  • 在 iMessage 应用程序中检查横向/纵向方向(扩展)

    见过很多检查方向的解决方案 但奇怪的是 没有一个有效 下面是代码片段 override func viewWillTransition to size CGSize with coordinator UIViewControllerTran
  • 何时以及为何使用多个 NSManagedObjectContext?

    基本上 我在我的应用程序中只使用了一个 moc 但我认为在某些情况下我应该使用多个 NSManagedObjectContext 什么时候应该使用多个 NSManagedObjectContext 我听说在某些情况下我应该使用 3 moc

随机推荐