如何在Swift中初始化iOS 10和iOS 9.3的NSManagedObject子类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Swift中初始化iOS 10和iOS 9.3的NSManagedObject子类相关的知识,希望对你有一定的参考价值。

我正在Swift 4中编写一个应用程序,它应该适用于ios 10.4和iOS 9.3。但是,我不知道如何为两个iOS版本实现初始化程序。

我收到错误消息:CoreData:错误:无法在NSManagedObject类'DeltaSigmaTestsignalGenerator.Project'上调用指定的初始化程序

以下空子类由Create NSManagedObject子类生成器自动创建:

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
答案

else分支写

newProject = NSEntityDescription.insertNewObject(forEntityName: "Project", into: managedContext!) as! Project

并将newProject声明为常量且非可选(不,您不会收到编译器错误)

let newProject: Project

以上是关于如何在Swift中初始化iOS 10和iOS 9.3的NSManagedObject子类的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 10 Swift 3 中初始化 NSFetchedResultsController

iOS 9 和 iOS 10 CoreData 同时

如何在 iOS swift 中使用多个属性初始化 CBMutableCharacteristic

Swift 中适用于 iOS 9 和 iOS 10 的 CoreData 堆栈

如何使用 Swift 2 + XCode 7 + iOS 9 获取和解析 JSON [重复]

Swift - iOS 9:如何在 iOS 9 中呈现具有自定义大小的 UIViewController? [复制]