每次创建新对象时迭代 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。
在我正在创建的 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。