私はFMDBを使用してデータベースからデータを取得しようとしていますが、しばらくの間無駄にしていましたが、なぜこれがEXC_BAD_ACCESS例外をスローしているのかわかりません。パラメータはNSIntegerから渡されますが、それをログに記録することも、SELECT文で使用することもできません。私が持っているコードは:NSIntegerとintは例外を与えます
-(SQLiteResult*) getClient:(bool)forceRefresh id:(NSString*)id forYear:(NSInteger)year {
SQLiteResult *res;
if(!forceRefresh){
NSMutableArray *hereditaments = [[NSMutableArray alloc] init];
NSLog([NSString stringWithFormat:@"SELECT * FROM Clients WHERE ID = %@ AND Year = %@", id, [NSString stringWithFormat:@"%@", year]]); // exception
NSLog([NSString stringWithFormat:@"SELECT * FROM Clients WHERE ID = %@ AND Year = %@", id, year]]); // also exception
FMResultSet *rs = [db executeQuery:[NSString stringWithFormat: @"SELECT * FROM Clients WHERE ID = ? AND Year = %@", year], id]; // also exception
FMResultSet *rs = [db executeQuery:[NSString stringWithFormat: @"SELECT * FROM Clients WHERE ID = ? AND Year = ?", id, year]]; // also exception
私はちょうどそれを文字列として渡す寸前です。 SQL文で今年の年を使うことができる安全な方法はありますか?
パラメータをクエリとして渡すのではなく、%dと書式設定しました。ありがとう。 – Echilon