Я предполагаю, что у вас есть свои веские причины использовать sqlite3 напрямую, а не Core Data. Конечно, есть случаи, когда это уместно.
Функция sqlite_3_open()
создаст базу данных, если она еще не существует. Функция sqlite3_open_v2()
создаст базу данных, если вы передадите SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE
в параметре flags
. Подробнее см. в документации .
Конечно, на iPhone вам необходимо убедиться, что вы создаете базу данных в каталоге для чтения и записи, например в каталоге документов приложения, а не в каталоге ресурсов, который доступен только для чтения.
На практике я никогда не пытался создать базу данных с нуля на iPhone. Мне всегда было проще просто включить пустой файл БД со схемой, предварительно созданной как ресурс приложения, а затем скопировать файл в каталог «Документы» при первом запуске приложения.