我第一次使用sqlite3和iOS ..在我必须打开与数据库的连接的部分使用
sqlite3_open(const char *filename, sqlite3 **ppDb)
功能。
我正在浏览以下代码片段:
int err = sqlite3_open((databasePath ? [databasePath fileSystemRepresentation] : ":memory:"), &db );
if(err != SQLITE_OK) {
NSLog(@"error opening!: %d", err);
return NO;
}
?
和:memory:
的内容是什么
在这里,databasePath
是NSString
,其中包含数据库的路径,db
是sqlite3
的实例。
答案 0 :(得分:2)
?:
是三元运算符,解释为here。
在这个特定的例子中,它是一种快捷的写作方式:
int err;
if (databasePath)
err = sqlite3_open([databasePath fileSystemRepresentation], &db);
else
err = sqlite3_open(":memory:", &db);
if (err != SQLITE_OK) {
但是,我相信你会同意的,更简洁。
答案 1 :(得分:0)
?
后跟:
称为“三元运算符”。
行(databasePath ? [databasePath fileSystemRepresentation] : ":memory:")
表示:
如果databasePath
为真,请使用[databasePath fileSystemRepresentation]
,否则请使用":memory:"
。
这一行是以下单行版:
if(databasePath) {
return [databasePath fileSystemRepresentation];
} else {
return ":memory:";
}
:memory:
是内存数据库。有关详细信息,请参阅docs。