cdespinosa хорошо описал сценарий № 1, поэтому я займусь № 2.
Я еще не делал этого на iPhone, но в настольной среде самый простой способ справиться с этим - хранить данные конфигурации в отдельной базе данных. Вы можете легко подключиться к нескольким базам данных. Начните с открытия вашей основной базы данных, которая, вероятно, должна быть базой данных, которая может измениться. Затем sqlite3_exec
оператор ATTACH
, который выглядит следующим образом:
ATTACH 'filepath' AS config;
С этого момента вы можете делать что-то вроде этого:
SELECT * FROM UserTableName;
SELECT * FROM config.ConfigurationTableName;
Насколько я понимаю, если вы запишете в базу данных конфигурации, приложение не выполнит проверку подписи и не запустится, а версия SQLite, поставляемая с iPhone, достаточно старая, чтобы не поддерживать флаг только для чтения. По этой причине вам следует скопировать файл базы данных конфигурации в изолированную программную среду и открыть эту копию вместо той, которая находится в вашем комплекте.
(Конечно, вы можете использовать SQL и копировать значения из одной базы данных в другую. Но если вы уже копируете всю базу данных конфигурации в свою песочницу ... и вам следует ... тогда это просто дополнительный шаг. Просто прикрепите.)
Я надеюсь, что кто-то еще может предоставить вам более подробную информацию. :)