【发布时间】:2015-09-01 13:53:09
【问题描述】:
我想将数组的元素保存到 Core Data 中,我尝试了许多不同的方法,但没有一种方法没有保存所有元素,而是保存了数组中的最后一个元素。我知道我正在重写 Core Data 中的元素,但我没有添加新元素。我在下面写了一些我尝试过的方法。请以编程方式向我展示这个我该怎么做?
let superArray = ["Steve", "Marina", "Tom", "Scarlett", "Michael", "David"]
@IBAction func saveData(sender: UIBarButtonItem) {
let personEntity = NSEntityDescription.insertNewObjectForEntityForName("Person", inManagedObjectContext: managedObjectContext) as! NSManagedObject
var index = 0
while index < superArray.count {
personEntity.setValue(superArray[index], forKey: "namePerson")
managedObjectContext.save(nil)
index++
}
}
第二种方法。
let superArray = ["Steve", "John", "Tom", "Scarlett", "Michael", "David"]
@IBAction func saveData(sender: UIBarButtonItem) {
let personEntity = NSEntityDescription.insertNewObjectForEntityForName("Person", inManagedObjectContext: managedObjectContext) as! NSManagedObject
var stringForSave: String!
for item in superArray {
stringForSave = item
// personEntity.setValue(item, forKey: "namePerson")
// managedObjectContext.save(nil)
}
personEntity.setValue(stringForSave, forKey: "namePerson")
managedObjectContext.save(nil)
}
第三种方法
var superArray = ["Steve", "John", "Tom", "Scarlett", "Michael", "David"]
@IBAction func saveData(sender: UIBarButtonItem) {
let personEntity = NSEntityDescription.insertNewObjectForEntityForName("Person", inManagedObjectContext: managedObjectContext) as! NSManagedObject
for var index = 0; index < superArray.count; index++ {
var data = superArray[index]
personEntity.setValue(data, forKey: "namePerson")
managedObjectContext.save(nil)
}
}
【问题讨论】:
-
您只是创建一个实例并在循环中更新它。将此移动到您的循环中
let personEntity = -
@DanielGalasko 请以编程方式向我展示这个
-
@DanielGalasko 非常感谢!
标签: arrays xcode swift core-data