作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有带参数的类,例如 Car
(NSObject 的子类),我将其用作简单模型:
class Car {
var model: String!
init(json: JSON) {
// ... parse JSON ...
}
}
我可以:
然后在我的 VC 中使用这个类:添加数据、删除数据等。任何我需要的。
我还想将这个模型保存到核心数据中,但为此我需要其他模型:
class Car: NSManagedObject {
@NSManaged var model: String!
}
这个类我不能用于解析和简单的初始化。
但是,我可以创建跟随初始化器:
class Car: NSManagedObject {
@NSManaged var model: String!
init() {
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let managedContext = appDelegate.managedObjectContext
let entity = NSEntityDescription.entityForName("Car", inManagedObjectContext: managedContext)
super.init(entity: entity!, insertIntoManagedObjectContext: nil)
}
convenience init(json: JSON) {
self.init()
// ... parse JSON ...
}
}
然后我将像这样使用这个类:
var car = Car()
car.model = "Toyota"
这是正确的解决方案?如何使用一种模型满足所有需求?
最佳答案
只需使用一个NSManagedObject
来表示Car。在那个 NSManagedObject
子类中创建一个名为 populateFromJSON(json:[String:Object])
的方法然后你的创建只是稍微复杂一点:
let aCar = NSEntityDescription.insertNewObjectForEntityForName("Car", intoManagedObjectContext:context)
aCar.populateFromJSON(myIncomingJSON)
完成。
顺便说一句,调用 super.init(entity: entity!, insertIntoManagedObjectContext: nil)
是错误的,不会产生您正在寻找的结果。
您真的不想覆盖 NSManagedObject
子类上的 init
方法。最好创建一个 populate
方法并使用指定的初始化选项。
关于ios - JSON 的模型类和 Swift 中核心数据的相同类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37719291/
现在我正在尝试实现 flash programming specification对于 PIC32MX。我正在使用 PIC32MX512L 和 PIC32MX512H。 PIC32MX512L最终必须
我是一名优秀的程序员,十分优秀!