Ну, простыми словами:
Вы пытаетесь получить доступ к объекту, который не создан или в настоящее время не находится в памяти.
Итак, как это решить:
if (i == null) {
// Handle this
}
Поиск по имени означает, что некоторые фреймворки позволяют использовать FIndObjects с помощью строк, а код может выглядеть так: FindObject («ObjectName»);
Да, именно по этой причине вы получаете предупреждение этого компилятора. Функция sqlite3_key () не определена в версии libsqlite3, включенной в iOS. Добавление в объявление функции не поможет - оно исправит это предупреждение компилятора, но это просто означает, что вы получите ошибку компоновщика, поскольку функция не определена нигде.
Если вы вы купили SEE, вы могли бы создать свою собственную копию SQLite, встроить ее в свое приложение и просто не использовать libsqlite3 системы. Это означает, что вам нужно будет сказать «да», когда в процессе подачи заявки на приложение спрашивает, включает ли ваше приложение шифрование, что означает дополнительную документацию и время, прежде чем вы сможете отправить приложение. Я не уверен, есть ли четкое указание на то, сможет ли Apple принять его даже тогда - вероятно, они будут, но они, как известно, удивляют людей.
Если вы используете SQLCipher , вам нужно определить SQLITE_HAS_CODEC в флагах C вашего приложения. Вот и все.