なぜこれが機能しないのか完全にはわかりません。
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";
これはうまくいきました。開始を次のように設定しようとしました:
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];
そして今、以前の提案の1つのおかげで型キャストを修正したので、プログラムはクラッシュしませんが、クエリからのデータは開始= 0として表示されません.コードを見てみると、これはまさに等しいはずです、もし sqlite ステートメントが正しく設定されていれば、それを間違った場所の制限に入れていることがわかります... -.- したがって、最初の型キャストの問題はクラッシュであり、唯一の問題のようです。