タイトルを説明しよう。テーブルが既に存在するかどうかを確認する次のコードがあります。
NSString *checkSql = @"SELECT * FROM sqlite_master WHERE type='table' AND name='files'";
NSArray *checkArray = [sqlite executeQuery:checkSql];
if ([checkArray count] != 0)
{
//rest of code here...
NSLog(@"Files table exists");
}
else
{
NSLog(@"Files table not found");
}
これで、常に表示されますFiles table exists
。ただし、これらのコードを追加すると:
NSArray *selArr = [sqlite executeQuery:[NSString stringWithFormat:@"SELECT FileID, FileName, FilePath FROM files WHERE UserID=%@", userId]];
これにより、次のエラーが表示されます: SQLite Prepare Failed: no such table: files
2012-09-17 14:56:35.723 iskoolme[3275:15203] - Query: SELECT FileID, FileName, FilePath FROM files WHERE UserID=5
。
なぜそれが起こるのかよくわかりません。データベースからのデータが実際に表示されるため、実際には問題にはなりません。「エラー」の理由が何であるかに興味があります。