0

なぜこれが機能しないのか完全にはわかりません。

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 ステートメントが正しく設定されていれば、それを間違った場所の制限に入れていることがわかります... -.- したがって、最初の型キャストの問題はクラッシュであり、唯一の問題のようです。

4

2 に答える 2

0

NSNumber *start = (*cur_page * 50) - 50;整数値を計算し、そのint値をポインターに割り当ててstart、無効なポインターを生成しているの ではないかと思います。またはstartとして宣言する必要があります。intNSInteger

于 2011-10-05T16:02:47.283 に答える
0

%d の代わりに %@ を使用してみてください。%d は整数用です。NSNumber は Objective-C オブジェクトです。

また、代わりに

NSNumber *start = (*cur_page * 50) - 50;

試す

NSNumber *start = [NSNumber numberWithInt:([cur_page intValue] * 50) - 50];

cur_page が NSNumber* 型であると仮定します。

http://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/nsnumber_Class/Reference/Reference.html

于 2011-10-05T15:53:56.143 に答える