Как проверить, является ли файл SQLite действительным хранилищем Core Data, как в целом, так и для конкретного приложения? - PullRequest
1 голос
/ 03 августа 2010

Я бы хотел проверить свое хранилище базовых данных (файл SQLite) перед его загрузкой, чтобы в случае любого повреждения приложение просто не зависало и не работало. Используя iPhone SDK, есть ли способ проверить файл SQLite (1), как правило, на предмет его отсутствия, и (2) более конкретно, соответствует ли файл SQLite одной из возможных версий хранилища данных для app? Вторая часть важна, потому что я создал систему резервного копирования, которая позволяет пользователям загружать резервные копии файлов SQLite в приложение для замены текущего хранилища данных.

Ответы [ 2 ]

2 голосов
/ 03 августа 2010

TC ответ, вероятно, самый простой.Но вы также можете посмотреть на его метаданные, которые дадут вам обоим понять, что A) он имеет метаданные Core Data и B) какие значения хеш-функции для его сущностей вы можете использовать, чтобы подтвердить, что у вас есть модель, которая соответствует этим значениям хеш.

Вы можете получить доступ к метаданным без загрузки хранилища с помощью метода +[NSPersistentStore metadataForPersistentStoreWithURL:error:.

0 голосов
/ 03 августа 2010

Загрузить и поймать исключение?

...