每次创建新对象时迭代 NSManagedObject 属性

iterate property of NSManagedObject every time a new object is created

在我正在创建的 todolist 应用程序中,我希望创建的每个新任务对象都有一个唯一的任务 ID,在实现核心数据之前,我有一个任务 class 带有一个静态实例变量,它将每次实例化新对象时递增 1。我将如何使用 NSManagedObject 执行此操作?

来自非 NSManagedObject 任务的代码 class

private static var taskID:Int = 0

如果您想确保拥有唯一 ID,您应该考虑使用 UUID,通用唯一标识符。这些 id 将是 string 类型并符合国际标准。

要在任何需要的地方生成新的 UUID:

let id : String = UUID().uuidString

就是说,如果您仍想使用整数,可以执行 (已弃用)

class Task {

   static var currentTaskId : Int = 0

   var taskId : Int?

   init(){
      Task.currentTaskId += 1
      self.taskId = Task.currentTaskId
   }
}

这样您所有的任务实例都会有一个不同的 ID。但是我不推荐它,因为每当你停止你的应用程序时 currentTaskId 将被带回到 0 并且如果你的任务随着时间的推移被存储和重用,你很可能拥有不再唯一的 ID。