如何在核心数据中保存多个记录

时间:2016-04-01 13:49:19

标签: swift

我是Swift的新手。我担心如何实现一个功能。我有一个具有多个选择的表视图,如果用户选择并取消选择应保存在一个数组中,并且该数组中的记录将保存到核心数据中。我尝试了很多方法,但它只存储了一条记录。

1 个答案:

答案 0 :(得分:2)

您必须遍历每个记录的数组并创建一个新的[NSEntityDescription insertNewObjectForEntityForName]对象。下面是一个示例,它是一个接受coreDataEntityName和记录数组的常用方法。假设你的实体名称是Record,它具有属性作为名称,那么你可以从数组中设置属性然后保存上下文。

    func insertItems(coreDataTable : String, records: NSArray) -> Bool {
        let error: NSError?
        for(item in records as NSDictionary!) {
            let entity = NSEntityDescription.entityForName(coreDataTable, inManagedObjectContext: self.managedContext)
            var record = NSManagedObject(entity: entity!, insertIntoManagedObjectContext: managedContext) as Record!
            record.name = item["name"]
            if (!self.mainObjectContext.save()) {
                // Replace this implementation with code to handle the error appropriately.
                // abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
                NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
                //abort();
                return false
            }
        }
    return true
}

这将添加您的所有记录。