在CoreData中为属性保存多个对象

时间:2018-05-25 02:49:30

标签: swift xcode core-data

CoreData结构: Entity: ZooAnimals, Attributes: animal (String type) and count (Integer 16 type)

我想保存一些动物名称和每只动物的数量(数量)。我可以通过对执行此操作所需的多个对象进行硬编码来实现这一点 - 请参阅下面的代码 - 但我怎样才能更灵活地执行此操作以便我可以给它一些任意长度的数组并将它们保存到CoreData中(例如{ {1}})

[hello world]

2 个答案:

答案 0 :(得分:0)

一个简单的解决方案是for循环

let animalArray = ["Donkey","Horse","Zebra","Okapi"]
let animalCountArray = [7,3,9,2]
assert(animalArray.count == animalCountArray.count, "The number of items in the arrays must be equal")

for i in 0..<animalArray.count {
    let animal = NSEntityDescription.insertNewObject(forEntityName: "ZooAnimals", into: managedContext)
    animal.setValue(animalArray[i], forKey: "animal")
    animal.setValue(animalCountArray[i], forKey: "count")
}
do {
    try managedContext.save()
} catch  {
    print("Could not save. \(error)")
}

旁注:guard ing AppDelegate毫无意义。如果缺少应用程序委托类,应用程序甚至不会启动。

答案 1 :(得分:0)

只需要使用for循环

alt.renderers.enable('notebook')