Механизм Зенда использует копию на записи, и когда Вы используете ссылку сами, это подвергается небольшим дополнительным издержкам. Может только найти это упоминание во время записи, хотя, и комментарии в руководство содержит другие ссылки.
(РЕДАКТИРОВАНИЕ) страница руководства на Объекты и ссылки содержат немного больше информации о том, как переменные объекта отличаются от ссылок.
Вы можете зашифровать отдельные свойства в объектах модели Core Data, сделав их трансформируемыми свойствами , а затем создав подкласс NSValueTransformer, который будет шифровать и дешифровать данные для этого свойства. Хотя это не та расшифровка всей базы данных, которую вы ищете, она потребует гораздо меньшего объема памяти, чем расшифровка всей базы данных в память. Кроме того, это позволит выполнять дешифрование лениво, а не сразу, поэтому ваше приложение будет загружаться намного быстрее. В зависимости от используемого шифрования я бы даже ожидал, что доступ к данным на диске для загрузки каждого объекта будет медленнее, чем процесс дешифрования свойств, поэтому вы не увидите такого большого снижения производительности при доступе к свойствам.
Мне удалось адаптировать пример кода Apple CustomAtomicStoreSubclass для использования в настольном приложении Mac, в результате зашифрованное постоянное хранилище в стиле NSBinaryStore, записанное как один файл в файловой системе. Мой подход:
CustomAtomicStoreSubclass
и CustomAtomicStoreSubclassCacheNode
в мой проект и переименуйте их Я перехватил чтение и запись резервного хранилища в readFile
, metadataForPersistentStoreWithURL: error :
, setMetadata: forPersistentStoreWithURL: error:
и save:
методы в CustomAtomicStoreSubclass
.
Заметки о подклассах для справочника классов NSAtomicStore для iPhone выглядят аналогично Mac OS X. Возможно, этот подход также подойдет для iPhone.
Шифрование - это шифрование, независимо от того, в каком формате находятся ваши данные, и вам, конечно, не нужно беспокоиться о том, как что-то «интегрируется с представлениями». Все, что вам нужно сделать, это расшифровать его, прежде чем пытаться прочитать что-нибудь значимое.
Как зашифровать или расшифровать данные?
"API служб сертификатов, ключей и доверия предоставляет функции для создания симметричных и асимметричных ключей шифрования, создания и проверки цифровых подписей и ключей шифрования. и одноразовые номера. Библиотека CommonCrypto используется для симметричного шифрования, хеширования и операций HMAC. См. Справочник по службам сертификатов, ключей и доверия и CC_crypto (3cc) справочные страницы для дополнительная информация »