Ios 将阵列保存为核心数据中的数据的正确方法是什么?
作为标题,我有一个由多个对象组成的数组,我希望将它们存储在核心数据中(我知道我们无法将数组保存到核心数据中,所以我将我的代码分解为json[0][I][“ID”].int格式),也许您在阅读我的代码后会更清楚Ios 将阵列保存为核心数据中的数据的正确方法是什么?,ios,arrays,swift,core-data,Ios,Arrays,Swift,Core Data,作为标题,我有一个由多个对象组成的数组,我希望将它们存储在核心数据中(我知道我们无法将数组保存到核心数据中,所以我将我的代码分解为json[0][I][“ID”].int格式),也许您在阅读我的代码后会更清楚 let appDel:AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate let context:NSManagedObjectContext = appDel.managedObject
let appDel:AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let context:NSManagedObjectContext = appDel.managedObjectContext
let newUser = NSEntityDescription.insertNewObjectForEntityForName("Users", inManagedObjectContext: context) as NSManagedObject
socket.on("reply") {data, ack in
let json = JSON(data)
print("database replied")
print(json[0].count)
for var i=0; i<json[0].count; ++i{
newUser.setValue(json[0][i]["ID"].int, forKey: "patientID")
newUser.setValue(json[0][i]["Name"].string, forKey: "patientName")
newUser.setValue(json[0][i]["Mileage"].double, forKey: "patientMileAge")
do{
try context.save()
}catch{
print("Could not save data")
}
}
}
让appDel:AppDelegate=UIApplication.sharedApplication().delegate为!AppDelegate
let context:NSManagedObjectContext=appDel.managedObjectContext
让newUser=NSEntityDescription.insertNewObjectForEntityForName(“Users”,inManagedObjectContext:context)作为NSManagedObject
socket.on(“reply”){data,ack in
让json=json(数据)
打印(“数据库已回复”)
打印(json[0]。计数)
对于var i=0;i
应该在循环内,因为否则您将创建一个对象,然后重复更新它并保存更改(因此旧值将被覆盖)
应该在循环中,因为否则您将创建一个对象,然后重复更新它并保存更改(因此旧值将被覆盖)因为您没有添加3个条目,所以您只更新了一个条目的值
你得走了
let newUser = NSEntityDescription.insertNewObjectForEntityForName("Users", inManagedObjectContext: context) as NSManagedObject
在for循环内部因为没有添加3个条目,所以只更新一个条目的值
你得走了
let newUser = NSEntityDescription.insertNewObjectForEntityForName("Users", inManagedObjectContext: context) as NSManagedObject
在for循环中将这行代码移动到循环中:
let newUser = NSEntityDescription.insertNewObjectForEntityForName("Users", inManagedObjectContext: context) as NSManagedObject
这应该行得通,如果它没有将这行代码移动到循环中,请写信给我:
let newUser = NSEntityDescription.insertNewObjectForEntityForName("Users", inManagedObjectContext: context) as NSManagedObject
这应该行得通,如果它不只是一个旁注,可能并不真正相关,因为Swift 3.0需要一段时间,但是C-style for循环将被弃用,所以也许开始习惯使用for in
循环是个好主意。只是旁注,可能并不真正相关,因为Swift 3.0需要一段时间,但是C-stylefor循环将被弃用,因此开始习惯在
循环中使用for可能是个好主意。