每次创建新对象时迭代 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 的属性的主要内容,如果未能解决你的问题,请参考以下文章
每次调用端点时,自托管 WCF 服务全局对象似乎都是新创建的
Eclipse:当我选择一个单词时,关闭每个单词迭代的突出显示?