不完全确定为什么这不起作用。
sqlite3 *db;
sqlite3_open([databasePath UTF8String], &db);
NSString *query;
NSNumber *start = (*cur_page * 50) - 50;
query = [NSString stringWithFormat:@"SELECT rest_db.rest_id, rest_db.name, prices.value FROM rest_db JOIN prices ON rest_db.rest_id = prices.table_id WHERE prices.table_name = 'rest_db' ORDER BY rest_db.name ASC %d Limit 50;", start];
以前,代码如下所示:
sqlite3 *db;
sqlite3_open([databasePath UTF8String], &db);
NSString *query;
query = @"SELECT rest_db.rest_id, rest_db.name, prices.value FROM rest_db JOIN prices ON rest_db.rest_id = prices.table_id WHERE prices.table_name = 'rest_db' ORDER BY rest_db.name ASC";
效果很好。我尝试将 start 设置为:
int start
int *start
NSString *start
当然,我相应地更改了字符串的“%d”。一切都无济于事。我现在一无所知。当我现在点击此页面时,程序崩溃了。没有错误,无法使用 NSLog 编写任何内容。
我也尝试过使用:
[NSString alloc] initWithFormat
有任何想法吗?他们受到赞赏。谢谢。
- - - - - - - - - - - - - - - 编辑 - - - - - - - - - - --------
.h
int page_count;
int cur_page;
@property int page_count;
@property int cur_page;
.m
@synthesize page_count;
@synthesize cur_page;
int start = (cur_page * 50) - 50;
query = [NSString stringWithFormat:@"SELECT rest_db.rest_id, rest_db.name, prices.value FROM rest_db JOIN prices ON rest_db.rest_id = prices.table_id WHERE prices.table_name = 'rest_db' ORDER BY rest_db.name ASC %d Limit 50;", start];
现在,由于之前的建议之一,我确实修复了类型转换,因此它不会使程序崩溃,但不会显示查询中的数据为 start = 0。当我查看我的代码时,这正是它应该等于的,如果我正确设置了我的 sqlite 语句,我会看到我把它放在错误的地方限制... -.- 所以最初的类型转换问题是崩溃,而且似乎是唯一的问题。