这是我的测试代码,我无法理解为什么print("db2: \(prod)")
会写出我的元素具有属性belok = 10000
的原因。但是我没有保存上下文,所以在DB中没有变化,没关系。我试图理解如何与DB和我的数组arrDBProducts
进行交互。
var arrDBProducts: [DB_Product]
func test() {
let fetchRequest: NSFetchRequest<DB_Product> = DB_Product.fetchRequest()
do {
let prods = try CoreDB.context.fetch(fetchRequest)
for prod in prods {
print("db1: \(prod)")
}
}
catch {}
arrDBProducts[0].belok = 10000
print("array: \(arrDBProducts)")
let fetchRequest2: NSFetchRequest<DB_Product> = DB_Product.fetchRequest()
do {
let prods = try CoreDB.context.fetch(fetchRequest2)
for prod in prods {
print("db2: \(prod)")
}
}
catch {}
}
答案 0 :(得分:0)
您没有保存上下文,因此一旦您关闭并打开您的应用程序,或者您将尝试从其他上下文访问它 - 您将看不到这些更改。
但是,当您在一个上下文中工作时 - 您的更改将存在于其中,直到将释放上下文。