SQLITE_OK等于1

时间:2010-12-26 07:18:17

标签: objective-c sqlite ios4

我看到一些奇怪的行为,当我尝试使用sqlite进行iphone开发时,我无法在xcode 3.2.5中解释。

如果我执行以下语句,代码将转到代码块1,但值为rc = 1 SQLITE_OK是常量,值为0 如果代码块1正在执行,那么rc = 0不应该吗?

int rc;
if(rc=sqlite3_prepare_v2(db, [sql UTF8String], -1, &pStmt, 0) == SQLITE_OK){
    //code block 1
}

我错过了什么?谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

==的优先级高于=,因此它首先进行比较,然后将结果1分配给rc。您需要将作业包装在括号中:

if ((rc = sqlite3_prepare_v2(db, [sql UTF8String], -1, &pStmt, 0)) == SQLITE_OK)