Vous avez vos parenthèses pas tout à fait au bon endroit - donc vous appelez sqlite3_open() avec juste un argument, le résultat du test 'is-equal'.
Ceci est probablement plus proche:
if (sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK)
Voir aussi la docs for sqlite3_open() - il y a trois signatures alternatives, accepter 2 ou 4 args:
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 */
);
awakeFromNib: S'il vous plaît marquer vos questions plus précisément. Voir mes modifications à vos deux dernières questions. –