核心数据如何与托管对象相互作用



这是我的测试代码,我真的不明白为什么 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 {}
}

您没有保存上下文,因此一旦您关闭并打开应用程序,或者如果您尝试从其他上下文中访问它 - 您将看不到更改。p>但是,当您在一个上下文中工作时 - 您的更改将存在直到上下文发布。

最新更新