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

Posted

技术标签:

【中文标题】每次创建新对象时迭代 NSManagedObject 的属性【英文标题】:iterate property of NSManagedObject every time a new object is created 【发布时间】:2018-05-24 19:26:50 【问题描述】:

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

来自非 NSManagedObject 任务类的代码

private static var taskID:Int = 0

【问题讨论】:

【参考方案1】:

如果您想确保拥有唯一的 id,您应该尝试考虑使用 UUID,Universally Unique Identifiers。这些 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。

【讨论】:

以上是关于每次创建新对象时迭代 NSManagedObject 的属性的主要内容,如果未能解决你的问题,请参考以下文章

每次新迭代时的 UITextField 输入

每次调用端点时,自托管 WCF 服务全局对象似乎都是新创建的

在循环中创建对象

Eclipse:当我选择一个单词时,关闭每个单词迭代的突出显示?

TypeError:连接 csv 文件时,“str”对象不是迭代器

如何创建一个循环来检查每次迭代时是不是有新的 IBAction 输入?