Я делаю простое основанное на документе приложение в Какао. Каждый документ этого приложения должен в основном управлять массивом дат и заметок, поэтому каждая запись представляет собой дату и заметку (просмотр текста). Также каждый документ защищен паролем.
Для этого я создал сущность Core Data с именем HistoryElement (которая содержит дату и атрибут заметок), а также создал сущность Settings, в которой должна быть только запись, содержащая пароль для открытия файла (я этого не делал нашел лучший метод, есть один? Пароль привязан к каждому файлу, поэтому я не могу использовать настройки, потому что это не глобальный пароль приложения).
У меня есть вкладка настроек, которая содержит текстовое поле «Пароль», которое привязывается к атрибуту пароля объекта «Настройки».
Хорошо ... проблема теперь в следующем: когда я создаю новый документ, в сущности «Настройки» нет записей, поэтому я хочу программно добавить один, чтобы пользователь мог поместить его (если он хочет защитить свой файл) пароль в текстовом поле пароля.
Вместо этого, если я открываю существующий файл, он должен обнаружить, что запись для сущности Настройки уже добавлена, и не должен создавать ее снова, вместо этого в текстовом поле пароля должно использоваться это.
Я пробовал много способов, но я не могу этого сделать. Я пробовал например это:
if([[settingsArrayController arrangedObjects] count] == 0) {`
NSLog(@"Init settings");`
[settingsArrayController add:self];`
}
Кажется, что он добавляет новую запись, когда я создаю новый документ, но если я введу пароль в текстовое поле пароля и затем сохраню документ, когда я снова открою документ, [[settingsArrayController arrangedObjects] count]
вернет 0
и он снова создает новую запись ...
Как я могу это сделать? Есть лучший / простой / элегантный способ защитить документ паролем?