【问题标题】:How to save elements of array into Core Data in order如何按顺序将数组元素保存到Core Data中
【发布时间】: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


【解决方案1】:
@IBAction func saveData(sender: UIBarButtonItem) {
    for item in superArray {
    let personEntity = NSEntityDescription.insertNewObjectForEntityForName("Person", inManagedObjectContext: managedObjectContext) as! Person
        personEntity.namePerson = item
        managedObjectContext.save(nil)

    }
}

【讨论】:

    猜你喜欢
    • 2012-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多