Как я могу сохранить несколько данных в одном контексте в CoreData?
У меня проблема с сохранением нескольких данных из массива в один контекст. Я пытаюсь сделать это обычным способом, но если я попытаюсь распечатать данные, там отображается только [, ]
в консоли! Я не понимаю?
Не могли бы вы помочь мне?
Вот мой код:
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 ответ
Решение
Вы создаете только один управляемый объект. Вы должны создать newEntity
в течение цикла. Или другой способ не использовать для цикла. Сделайте ваш код немного функциональным
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)")
}