Отказ от NSManagedObjects

Я создаю новый контекст управляемого объекта в новом потоке и вставляю в него некоторые объекты. Могу ли я отбросить (просто забыть их) их, просто не сохраняя контекст? Моя проблема заключается в следующем: я запускаю длительный процесс, который создает несколько NSManagedObjects в начале и сохраняет их в конце (объединяет их обратно в основное хранилище). Это происходит в NSOperation. Я хочу, чтобы пользователь мог выйти из приложения в любое время, не дожидаясь завершения процесса. Могу ли я просто убить операцию и сохраниться? Насколько я понимаю, это возможно, потому что контекст ничего не сохраняет без сохранения. Верно?


person david    schedule 04.07.2011    source источник


Ответы (1)


Да, вы можете это сделать, но не должны этого делать, если фоновая операция обрабатывает какие-либо пользовательские данные.

Грамматика пользовательского интерфейса в MacOS учит пользователей ожидать, что все их данные будут сохранены, если они не укажут иное.

Поскольку сохранение происходит практически мгновенно (с точки зрения пользователя) в подавляющем большинстве случаев, было бы лучше послать уведомление фоновой операции, чтобы остановить ее и сохранить.

person TechZen    schedule 04.07.2011