FMDatabaseで問題が発生することはめったにありませんが、今日、奇妙な動作に気づき、これがバグなのか、それとも自分のミスによるものなのか疑問に思いました。
NSString *query = [NSString stringWithFormat:@"SELECT * FROM TABLE_A WHERE modelId = %lu", modelId];
FMResultSet *resultSet = [db executeQuery:query];
while ([resultSetIPTCProperties next]) {
NSLog(@"MODEL ID: %lu", [resultSetIPTCProperties intForColumn:@"stringId"]);
}
奇妙なことに、これはすべて正常に機能しますが、安全にプレイし、whileループの前に[db hasAnotherRow]を使用するifステートメントを付けたいと思いましたが、結果セットに結果が含まれている場合でも、これはNOを返します。
結果のディクショナリを(FMResultSetのresultDictメソッドを使用して)コンソールに記録すると、FMResultSetから「警告:このセットには列がないようです」という警告が表示されます。whileループで使用できますが。
ここで何かが足りませんか?