gpt4 book ai didi

iphone - while (sqlite3_step(statement1) == SQLITE_ROW) 不工作,即使两个值在 iPhone 中相等

转载 作者:行者123 更新时间:2023-11-28 23:02:38 25 4
gpt4 key购买 nike

我不知道确切的问题,但现在已经挠头了将近 4 个小时。

    if (sqlite3_open([dataBasePath UTF8String], &bookDB) == SQLITE_OK) {


NSString *Query = [NSString stringWithFormat:@"SELECT * FROM linktable WHERE pageid = 2"];

if (sqlite3_prepare_v2(bookDB, [Query UTF8String], -1, &statement1, nil) == SQLITE_OK) {

markupsArray = [NSMutableArray arrayWithCapacity:1];

NSLog(@"sqlite3_step(statement1) is %d",sqlite3_step(statement1));

while (sqlite3_step(statement1) == SQLITE_ROW) {
NSLog(@"yup");

MarkupData *markUpObject = [[MarkupData alloc] init];

markUpObject.linkID = [[[NSString alloc] initWithUTF8String:(const char*) sqlite3_column_text(statement1, 0)] autorelease];
markUpObject.pageID = [[[NSString alloc] initWithUTF8String:(const char*) sqlite3_column_text(statement1, 1)] autorelease];
markUpObject.markupID = [[[NSString alloc] initWithUTF8String:(const char*) sqlite3_column_text(statement1, 2)] autorelease];
markUpObject.folioNumber = [[[NSString alloc] initWithUTF8String:(const char*) sqlite3_column_text(statement1, 5)] autorelease];


[markupsArray addObject:markUpObject];
}
}
}

奇怪的事情来了。 sqlite3_step(statement1)的值为100,SQLITE_ROW的值为100。但即便如此,while 循环也没有得到执行。任何人都可以帮我破解这个奇怪的场景......刚刚被击中了.. :(

最佳答案

如果您的 sqlite 查询仅返回 1 条记录,则 sqlite3_step() 实际上会遍历该记录。由于您的 NSLog 语句正在执行 sqlite3_step(),因此记录已在此处逐步执行。因此,您的 while 循环将不会执行,因为没有更多的行可以通过。

关于iphone - while (sqlite3_step(statement1) == SQLITE_ROW) 不工作,即使两个值在 iPhone 中相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9772736/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com