【发布时间】:2017-04-13 13:05:52
【问题描述】:
您好,我正在处理 CoreData 项目和来自服务器的 JSON 响应。我的目标是从json 参数创建一个Entity failable initializer,它将首先检查entity 是否已经存在(通过检查属性“id”与json [“id] 字段进行比较。如果实体已经存在。 initializer 只会使用json 更新实体。如果实体不存在,initializer 将创建一个新实体并使用json 更新新实体的属性。
如何创建可失败的初始化程序?
我试过这个,但不知道它是否正确(有一些解包选项。
import SwiftyJSON
import CoreData
extension Movie {
struct Keys {
static let id = "id"
static let title = "title"
}
convenience init?(in context: NSManagedObjectContext!, with json: JSON?) {
self.init(entity: NSEntityDescription.entity(forEntityName: "Movie", in: context)!, insertInto: context)
guard let json = json else {
return nil
}
id = json[Keys.id].numberValue
title = json[Keys.title].string
}
func update(from json: JSON?) {
guard let json = json else {
return
}
id = json[Keys.id].numberValue
title = json[Keys.title].string
}
}
【问题讨论】:
-
您是否遇到编译器错误?什么线?那是什么?
-
您好,没有编译器错误,但我不知道它是否正确。还有一件事是在创建新实体之前没有检查存在的对象
标签: ios swift core-data initialization