Ios Swift中JSON的模型类和核心数据的相同类
我有一个带有参数的类,例如NSObject的Carsubclass,我使用它就像使用简单模型一样:Ios Swift中JSON的模型类和核心数据的相同类,ios,json,swift,class,core-data,Ios,Json,Swift,Class,Core Data,我有一个带有参数的类,例如NSObject的Carsubclass,我使用它就像使用简单模型一样: class Car { var model: String! init(json: JSON) { // ... parse JSON ... } } 我可以: 用init初始化; 将JSON数据解析到此模型; 然后在我的VC中使用这个类:添加数据,删除数据,等等。任何我需要的 我还想将此模型保存到核心数据,但出于此目的,我需要其他模型: cl
class Car {
var model: String!
init(json: JSON) {
// ... parse JSON ...
}
}
我可以:
用init初始化;
将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来表示汽车。在NSManagedObject子类中,创建一个名为populateFromJSONjson:[String:Object]的方法,那么您的创建只会稍微复杂一点:
let aCar = NSEntityDescription.insertNewObjectForEntityForName("Car", intoManagedObjectContext:context)
aCar.populateFromJSON(myIncomingJSON)
完成了
顺便说一句,调用super.initentity:entity!,insertIntoManagedObjectContext:nil不好,不会产生您想要的结果
您确实不希望覆盖NSManagedObject子类上的init方法。最好创建一个填充方法并使用指定的初始化选项。只需使用NSManagedObject来表示汽车。在NSManagedObject子类中,创建一个名为populateFromJSONjson:[String:Object]的方法,那么您的创建只会稍微复杂一点:
let aCar = NSEntityDescription.insertNewObjectForEntityForName("Car", intoManagedObjectContext:context)
aCar.populateFromJSON(myIncomingJSON)
完成了
顺便说一句,调用super.initentity:entity!,insertIntoManagedObjectContext:nil不好,不会产生您想要的结果
您确实不希望覆盖NSManagedObject子类上的init方法。最好创建一个填充方法并使用指定的初始化选项。这是一个解决方案,您实际上没有解释问题/未满足的需求…这是一个解决方案,您实际上没有解释问题/未满足的需求。。。