NSManagedObject Как перезагрузить - PullRequest
1 голос
/ 03 июня 2010

У меня есть представление, которое состоит из таблицы существующих объектов и кнопки Добавить, которая позволяет пользователь для создания нового объекта. Когда пользователь нажимает кнопку Добавить, объект создается в контроллере представления списка, так что этот объект будет частью контекста этого управляемого объекта. (с помощью метода NSEntityDescription insertNewObjectForEntityForName:).

Представление Add имеет свойство для управляемого объекта. В контроллере представления списка Я создаю контроллер представления Add, устанавливаю свойство для управляемого объекта, который я создал, и затем добавьте представление Add в стек навигации.

В представлении «Добавить» у меня есть две кнопки для сохранения и отмены. В сохранении я сохраняю управляемый объект и передать управляемый объект обратно в контроллер представления списка через метод делегата. Если пользователь отменяет, затем я удаляю объект и передаю nil обратно в контроллер представления списка.

Осложнение, которое я испытываю в представлении добавления, связано с UIImagePickerController. В представлении «Добавить» у меня есть кнопка, позволяющая пользователю сделать снимок объекта (или используйте существующую фотографию из библиотеки фотографий). Тем не менее, процесс передачи в UIImagePickerController и использование пользователем камеры приводит к didReceiveMemoryWarning в контроллере добавления представления.

Кроме того, представление было выгружено, что также привело к засорению моего NSManagedObject. Мой вопрос как перегрузить NSManagedObject в том случае, если он был выпущен, потому что ситуации с нехваткой памяти?

1 Ответ

1 голос
/ 05 июня 2010

Просто предложение, но как насчет ожидания создания управляемого объекта, пока пользователь не скажет, что он закончил редактирование?

Сохраните все свойства «редактора» в словаре, который вы сохраняете отдельно (на случай, если во время редактирования поступит вызов, или если они захотят скопировать текст из другого приложения, чтобы вставить в новый элемент в вашем), сохранив каждое раз они редактируют поле. Затем, когда пользователь завершит редактирование, создайте и сохраните управляемый объект из содержимого словаря за один раз. Если они отменяют, сбрасывают (или удаляют) словарь (и очищают его постоянный файл). Таким образом, вы будете лучше контролировать ситуацию с нехваткой памяти.

...