Я знаю, что это старый вопрос, но он все еще довольно актуален, и мне недавно пришлось самому заняться этим вопросом.
Трансформируемые свойства являются потенциальным решением, но, похоже, не работают с NSPredicates, что является большим недостатком. Я не придерживался подхода CustomAtomicStoreSubclass, но мне любопытно, добились ли другие успеха с ним.
Мои опасения были схожи с теми, что были у оригинального плаката, и я, в конечном итоге, сделал следующее:
- Расшифровать хранилище во временный файл
- Загрузка расшифрованного хранилища в обычном режиме
- Перенос магазина в хранилище в памяти
- Удалить незашифрованное хранилище
В моем случае мое хранилище было доступно только для чтения, но его можно расширить, чтобы выписать хранилище обратно, зашифровать его и еще раз удалить незашифрованное хранилище. Вы также всегда можете пропустить # 3, если у вас большой магазин и / или вы не беспокоитесь о том, чтобы незашифрованный файл оставался без присмотра во время работы вашего приложения.
Файл базовых данных, с которым я работал, занимал ~ 1 МБ и мог очень быстро шифроваться / расшифровываться.