Избегайте извлечения удаленных NSManagedObjects

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

Я знаю, что можно проверить -isDeleted или если -managedObjectContext возвращает nil, но есть ли способ сделать это на уровне базы данных?


person hwaxxer    schedule 23.02.2012    source источник
comment
Попробуйте сохранить контекст перед получением.   -  person Costique    schedule 23.02.2012
comment
Я лучше позвоню -processPendingChanges, и это не ответ на вопрос.   -  person hwaxxer    schedule 23.02.2012


Ответы (1)


Технически, если объект действительно удален, он не будет отображаться на уровне базы данных. Каковы симптомы проблемы?

person Scott Corscadden    schedule 25.02.2012
comment
Возможно, слой базы данных фраз вводил в заблуждение. Я хочу знать, можно ли избежать выборки объектов, которые будут удалены из хранилища при следующей операции сохранения. - person hwaxxer; 26.02.2012
comment
Все еще не уверен, почему вы можете захотеть это сделать. Если ваше приложение является многопоточным, возможно, что любой объект может быть удален (и, таким образом, превратиться в ошибку). Если вы используете один NSManagedObjectContext, то, как говорит Costique, сохранение его в первую очередь, по крайней мере, гарантирует, что ожидающие удаления будут перемещены в NSPersistentObjectStoreCoordinator. Ожидающие удаления в любом случае будут известны только отдельному NSManagedObjectContext, а не одноранговым, висящим на одном и том же постоянном хранить. Можете ли вы уточнить, какая именно проблема заставляет вас хотеть, чтобы выборка работала таким образом? - person Scott Corscadden; 27.02.2012
comment
Я синхронизируюсь с веб-службой, вставляя и удаляя объекты в произвольное время. Пользовательский интерфейс наблюдает за изменениями в контексте и создает запрос на выборку всякий раз, когда происходит конкретное изменение. Однако этот запрос также возвращает объекты, которые будут удалены при следующем сохранении, и я бы предпочел отфильтровать их в запросе, а не после выборки. - person hwaxxer; 27.02.2012