【问题标题】:SQLITE_OK equating to 1SQLITE_OK 等于 1
【发布时间】:2011-05-30 19:16:28
【问题描述】:

我看到一些奇怪的行为,当我尝试使用 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
}

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

【问题讨论】:

    标签: objective-c sqlite ios4


    【解决方案1】:

    == 的优先级高于=,因此它先进行比较,然后将结果 1 分配给rc。您需要将赋值用括号括起来:

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

    【讨论】:

      猜你喜欢
      • 2013-08-17
      • 2013-08-17
      • 2014-07-04
      • 2011-12-18
      • 2019-12-23
      • 1970-01-01
      • 2012-01-17
      • 2019-07-30
      • 1970-01-01
      相关资源
      最近更新 更多