ios - Xcode : sqlite3_step returning 101, 但不在 block 内执行代码

标签 ios sqlite

如果 sqlite3_step 语句返回 101,我有一段代码要执行,但即使是,代码块中的代码也会被跳过。为什么会这样?

sqlite3_stmt *statement;
if (sqlite3_open([dbPathString UTF8String], &database) == SQLITE_OK) {
    NSLog(@"Value: %li",(long)sender.tag);
    NSString *delete_feed = [NSString stringWithFormat:@"DELETE FROM user_data WHERE id = %li", (long)sender.tag];
    if (sqlite3_prepare_v2(database, [delete_feed UTF8String], -1, &statement, NULL) == SQLITE_OK) {
        NSLog(@"%d", sqlite3_step(statement));
        if (sqlite3_step(statement) == SQLITE_DONE) { <== MY ISSUE
            NSLog(@"Got here"); <== NEVER GETS HERE
            for (UIView *subview in [self.view subviews]) {
                if (subview.tag == 2) {
                    [subview removeFromSuperview];
                    [self createListPage];
                }
            }
            sqlite3_finalize(statement);
            sqlite3_close(database);
        }
    }
}

最佳答案

您正在调用 sqlite3_step 两次。我认为第一次是 SQLITE_DONE (101),但第二次(当你进入你的 block 时),它返回了一些其他错误代码。

可以尝试类似(伪代码)

    int ret_code = sqlite3_step(statement);
    NSLog(@"ret_code=[%d]", ret_code);
    if(ret_code == SQLITE_DONE) {
       // do some stuff here...
    }

关于ios - Xcode : sqlite3_step returning 101, 但不在 block 内执行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26344349/

相关文章:

c# - Windows Phone 7 : SQLite

java - 我的 RecyclerView 中的 SQLite 数据没有被删除

python - 根据表中的现有属性在 Python 中填充 SQL 表

c# - 将多个数据表链接到同一个数据库表

objective-c - 实时gif解码的乐趣

objective-c - 在 Xcode 中使用纹理图集而不使用 cocos2d

iphone - 如何存储用户在我的 iPhone 应用程序中选择的歌曲,并在以后检索并播放?

python - 如何在较大的 Python/Flask 应用程序中组织数据库连接?

ios - 无法使用 PhotoKit 获得从相册请求的清晰图像

ios - 快速追加数组,遇到问题