Как я могу отсортировать по трансформируемому атрибуту в NSFetchedResultsController? - PullRequest
1 голос
/ 09 марта 2010

Я использую NSValueTransformers для шифрования атрибутов (строк, дат и т. Д.) В моей модели базовых данных, но я почти уверен, что это мешает сортировке в моем NSFetchedResultsController.

Кто-нибудь знает, есть ли способ обойти это? Я полагаю, это зависит от того, как выполняется сортировка; если это всегда выполняется только непосредственно в базе данных, то мне, вероятно, не повезло. Если он сортирует по самим объектам, то, возможно, есть способ активировать преобразование до того, как произойдет сортировка.

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

Примечание: Я должен добавить, что здесь есть какое-то странное поведение ... коллекция не сортируется в первом сеансе (сеансе, где создаются объекты), но сортируется в последующих сеансах (где объекты уже существуют и просто извлекаются). Так что, возможно, сортировка работает с трансформируемыми объектами, но, возможно, есть предостережение в том, что их нужно сначала сохранить или что-то в этом роде (?)

1 Ответ

1 голос
/ 09 марта 2010

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

обновление

Я полагаю, что ваше непоследовательное поведение, вероятно, основано на том, что уже находится в памяти, и на том, что читается непосредственно с диска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...