如何在CoreData中的一个上下文中保存多个数据?

时间:2014-11-07 19:07:29

标签: ios core-data swift xcode6 ios8.1

我遇到了将数组中的多个数据保存到一个上下文中的问题。 我尝试通常的方式,但如果我尝试打印数据,控制台中只显示[, ]! 我不明白吗?

你能帮帮我吗?

这是我的代码:

override func viewDidLoad() {
    super.viewDidLoad()
    let context: NSManagedObjectContext = (UIApplication.sharedApplication().delegate as AppDelegate).managedObjectContext!
    let array = ["Hey", "there", "I", "am", "an", "example"]

    let entityExample = NSEntityDescription.entityForName("Example", inManagedObjectContext: context)
    var newItemExample = Example(entity: entityExample!, insertIntoManagedObjectContext: context)

    for string in array {
        newItemExample.string = string
        println(newItemExample.string)
        context.save(nil)
    }

    let fetchRequest = NSFetchRequest(entityName: "Example")
    var dataExample = [Example]()

    dataExample = context.executeFetchRequest(fetchRequest, error: nil) as [Example]

    println(dataExample) }

我做错了什么以及它是如何运作的?

1 个答案:

答案 0 :(得分:0)

您只创建一个托管对象。您应该在for循环中创建newEntity。或者不同的方式不要使用for循环。使你的代码有点功能

array.map { word -> Void in
    let newItemExample = Example(entity: entityExample!, insertIntoManagedObjectContext:context)
    newItemExample.string = word
}

var error: NSError?
context.save(&error)
if let error = error {
    println("Error: \(error.localizedDescription)")
}