【发布时间】:2016-10-07 15:53:57
【问题描述】:
我有一个在 iOS10 上完美运行的 CoreData 应用程序,用 Swift3 编写,支持 iOS 8.4 及更高版本。
当我尝试在 iOS 9.3.5 上运行它时出现错误:
2016-10-07 17:47:20.596 FormApp[710:179733] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSSet intersectsSet:]: set argument is not an NSSet'
在线崩溃:
form.addToOpenQuestions(openQuestion)
我已将@objc() 添加到托管对象类中。然后我得到新的错误:
CoreData: warning: Unable to load class named 'FormApp.Form' for entity 'Form'. Class not found, using default NSManagedObject instead.
在线上发生:
let form = NSEntityDescription.insertNewObject(forEntityName: "Form", into: managedObjectContext) as! Form
我的配置:
所有类都是由 Xcode 生成的。我试过删除模块和所有配置。有人知道如何使它工作吗?
【问题讨论】:
-
你能设置一个异常断点并显示应用程序崩溃的确切行吗?在 xCode 中选择断点选项卡 -> 左下角的“+”按钮 -> 异常断点。另请出示 Form+CoreDataProperties.swift 文件
-
@alex 完成。添加屏幕和线条
-
您的核心数据模型中是否有安排:有序复选标记?出于某种原因,它需要 NSSet,但是您的 NSManagedObject 代码具有 NSOrderedSet,它是 NSObject 的子类。尝试删除该复选标记并将这些关系重构为 NSSet
-
@alex 将其作为您的答案。作品。为什么它在 iOS10 上运行而不在 iOS9 上运行?他们在这个新版本中使 NSOrderedSet 成为 NSSet 的子类还是什么?
标签: ios core-data swift3 ios9.3