Свойство iterate NSManagedObject при каждом создании нового объекта - PullRequest
0 голосов
/ 24 мая 2018

В создаваемом мною приложении todolist мне бы хотелось, чтобы каждый новый объект задачи имел уникальный идентификатор задачи, прежде чем реализовывать основные данные, у меня был класс задачи со статической переменной экземпляра, которая будет увеличиваться на 1 каждый разновый объект был создан.Как бы я сделал это с NSManagedObject?

Код из класса задач не-NSManagedObject

private static var taskID:Int = 0

1 Ответ

0 голосов
/ 25 мая 2018

Вам следует попробовать использовать UUID, Универсально уникальные идентификаторы , если вы хотите быть уверены, что у вас есть уникальные идентификаторы.Эти идентификаторы будут иметь тип 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
   }
}

Таким образом, все ваши экземпляры задач будут иметь разные идентификаторы.Однако я не рекомендую это делать, потому что всякий раз, когда вы останавливаете ваше приложение, currentTaskId будет возвращаться к 0, и вы, скорее всего, будете иметь идентификаторы, которые больше не будут уникальными, если ваши задачи сохраняются и повторно используются со временем.

...