我正在尝试使用for循环来创建对象,这些对象具有稍后将用于填充地图的属性。我能够循环并填充对象的属性,但是当我保存对象时,它似乎每次都被覆盖。 for循环从我的firebase数据库中提取数据。
let holes = [hole1,hole2,hole3,hole4,hole5,hole6,hole7,hole8,hole9,hole10,hole11,hole12,hole13,hole14,hole15,hole16,hole17,hole18]
for hole in holes {
let holeX = hole?["HoleX"] as? Double // these are just grabbing the data for the appropriate hole from my firebase data.
let holeY = hole?["HoleY"] as? Double
let holeH = hole?["HoleH"] as? Double
var newHole = NSEntityDescription.insertNewObject(forEntityName: "HoleCoordinateData", into: self.managedObjectContext)
newHole.setValue(holeX, forKey: "HoleX")
newHole.setValue(holeY, forKey: "HoleY")
newHole.setValue(holeH, forKey: "HoleH")
newHole.setValue(holeNumber, forKey: "holeNumber")
newHole.setValue("\(holeNumber)", forKey: "holeNumberString")
self.managedObjectContext.insert(newHole)
holeNumber += 1
}
do {
try self.managedObjectContext.save()
} catch {
print("Could not save Data: \(error.localizedDescription)")
}
我在for循环中尝试过try try catch。我最初在for循环之前初始化了newHole,但我把它放在其他堆栈问题和响应的建议中。我最初只是newHole
填写了newHole.holeX = holeX
。显然,这些变化中的一些只是做同样事情的不同方式,但我已经在这上面旋转了很长时间,以便尽我所能。