【发布时间】:2016-03-30 03:09:25
【问题描述】:
我正在开发一个具有类别实体的应用,该实体需要在启动时预先填充 4 个默认记录。
我曾考虑将我的应用程序与 sqlite 或 csv 文件捆绑在一起以预加载数据,但由于它只有 4 条记录,我决定在运行时注入默认值,条件是只执行一次。
我面临的问题是,使用以下代码块,我只能保留最后一条记录Drink。我猜他们在移动到下一个setValue() 时会覆盖自己。如何确保将所有记录保留在同一属性上?
do {
let result = try context.executeFetchRequest(request)
print(result.count)
if result.count == 0 {
//Pre-populate recipe categories
let entityCategory = NSEntityDescription.entityForName("RecipeCategory", inManagedObjectContext: self.managedObjectContext)
let newCategory = NSManagedObject(entity: entityCategory!, insertIntoManagedObjectContext: self.managedObjectContext)
newCategory.setValue("Main", forKey: "name")
newCategory.setValue("Side", forKey: "name")
newCategory.setValue("Dessert", forKey: "name")
newCategory.setValue("Drink", forKey: "name")
do {
try newCategory.managedObjectContext?.save()
} catch {
let saveError = error as NSError
print(saveError)
}
}
} catch {
print("Error fetching data")
}
【问题讨论】: