【发布时间】:2018-09-04 17:48:58
【问题描述】:
我正在用 Swift 4 编写一个应用程序,该应用程序应该可以在 iOS 10.4 和 iOS 9.3 上运行。但是,我不知道如何为两个 iOS 版本实现初始化程序。
我收到错误消息:CoreData: error: Failed to call specified initializer on NSManagedObject class 'DeltaSigmaTestsignalGenerator.Project'
下面的空子类是由 Create NSManagedObject Subclass Generator 自动创建的:
import Foundation
import CoreData
public class Project: NSManagedObject {
}
下面的函数应该生成一个新的项目对象
func addNewProject(projectName: String, version: String) {
var newProject: Project!
if #available(iOS 10.0, *) {
newProject = Project(context: managedContext!)
}
else {
newProject = Project()
}
newProject.projectName = projectName
let newVersion = createNewVersion(versionName: version)
newProject.addToVersions(newVersion)
projekte.append(newProject)
do {
try managedContext!.save()
}
catch let error as NSError {
print("Save error: \(error), \(error.userInfo)")
}
}// End of addNewProject
【问题讨论】:
标签: swift initialization nsmanagedobject ios9.3 ios10.3