【发布时间】:2022-01-01 23:13:49
【问题描述】:
假设我有;
var itemArray = [Item]()
并且 Item 是一个 NSManagedObject。 Item 有两个属性“Title”:String 和“Done”:Boolean。这是我的数据模型的图片。
// Item+CoreDataClass.swift
// This file was automatically generated and should not be edited.
//
import Foundation
import CoreData
public class Item: NSManagedObject {
}
当我更改 Done 的值并调用 context.save 时,它会自动反映到 Persistent Container。但是,当我通过说从数组中删除一个元素时,
itemArray.remove(at: someindex)
并调用 context.save。该项目不会从 Persistent Container 中删除。只有当我打电话时,
context.delete(itemArray[someindex])
然后该项目真正从存储中删除。
那么为什么只从 itemArray 中删除并保存上下文是不够的,尽管更改属性的值和保存上下文对于在 Core Data 上成功进行 CRUD 操作就足够了?
【问题讨论】:
-
为什么 Core Data 会知道你的变量和属性?