你好,我正在使用Core Data在我的应用程序中,想要将每个实体中的ID属性设置为自动递增。在Core Data中是否有这个功能?还是我必须手动插入条目并通过编程方式管理递增?
你好,我正在使用Core Data在我的应用程序中,想要将每个实体中的ID属性设置为自动递增。在Core Data中是否有这个功能?还是我必须手动插入条目并通过编程方式管理递增?
objectID
属性可供访问。从托管对象上下文创建对象时,core data会分配一个临时ID。当您提交托管对象上下文的更改时,core data会分配一个永久ID。我认为手动尝试设置将不是一个好主意。我曾使用NSFetchedResultsController
这种方法:
先进行排序:
fetchRequest.sortDescriptors = [NSSortDescriptor(key: "id", ascending: false)]
接下来在添加对象方法中:
// Minimum id value
var recordID = 1
if let lastRecordID = fetchedResultsController.fetchedObjects?.first?.id {
recordID = Int(lastRecordID) + 1
}
let newRecord = Record(context: persistentContainer.viewContext)
newRecord.id = Int32(recordID)