私は自分のsqliteデータベースで多くの挿入を行っています。何らかの理由で、特定の時点でアプリがクラッシュします。挿入コマンドを確認しました-すべて問題ありません。iPhone 4デバイスで実行すると、完全に実行されます。
問題は、メモリの警告も含めて、エラーメッセージが表示されないことです。xCodeはまだ実行されているようですが、デバイス上でアプリがクラッシュします。
これは私のコードです:
sqlite3_stmt *compiledStatement;
for (UpdateItems *one in arrList) {
NSString *stat;
stat = [[NSString alloc] initWithFormat:@"insert into table values (null, (select id from t1 where code='%@'), (select id from t2 where c='%@'), '%@', '%@', '%@', '%@', '%@', '%@')", one.bk, one.code, one.data, one.b, one.bV, one.s, one.sV, one.o];
if(sqlite3_prepare_v2(database, [stat UTF8String], -1, &compiledStatement, NULL) == SQLITE_OK)
{
while(YES){
NSInteger result = sqlite3_step(compiledStatement);
printf("db error: %s\n", sqlite3_errmsg(database));
if(result == SQLITE_DONE){
index = index + 1;
double totalPrc = 0.75f + roundf(((double) index / totalRecords) / (100 / 20) * 100.0f) / 100.0f;
if (self.percentageCompleted != totalPrc) {
self.percentageCompleted = totalPrc;
[self performSelectorOnMainThread:@selector(refreshHUD) withObject:nil waitUntilDone:NO];
}
break;
}
else if(result != SQLITE_BUSY){
printf("db error: %s\n", sqlite3_errmsg(database));
break;
}
}
sqlite3_reset(compiledStatement);
}
[stat release];
}
これを追跡して、何が問題なのかを確認するにはどうすればよいですか?