Вы получили скобки не совсем в нужном месте - поэтому вы вызываете sqlite3_open () только с аргументом one , результатом теста «is-equal».
Это, вероятно, ближе:
if ( sqlite3_open( [databasePath UTF8String], &database ) == SQLITE_OK )
См. Также документы для sqlite3_open () - есть три альтернативные подписи, принимающие 2 или 4 аргумента:
int sqlite3_open(
const char *filename, /* Database filename (UTF-8) */
sqlite3 **ppDb /* OUT: SQLite db handle */
);
int sqlite3_open16(
const void *filename, /* Database filename (UTF-16) */
sqlite3 **ppDb /* OUT: SQLite db handle */
);
int sqlite3_open_v2(
const char *filename, /* Database filename (UTF-8) */
sqlite3 **ppDb, /* OUT: SQLite db handle */
int flags, /* Flags */
const char *zVfs /* Name of VFS module to use */
);