私はこのコードをしばらく見てきました。代替案を研究していますが、うまくいかないようです。私は少し何かを見てきたことを教えてください。あなたは問題がいくつかありsqliteを使用したデータの復帰
-(void)revertData
{
if(revertStmt == nil) {
const char *sql = "select signature, sigdate from signatureDB where id = ?";
if(sqlite3_prepare_v2(database, sql, -1, &revertStmt, NULL) != SQLITE_OK){
UIActionSheet *msg = [[UIActionSheet alloc]
initWithTitle:[NSString stringWithFormat:@"Error while inserting data. '%s'", sqlite3_errmsg(database)]
delegate:nil
cancelButtonTitle:nil destructiveButtonTitle:nil
otherButtonTitles:@"Okay", nil];
[msg showInView:[UIApplication sharedApplication].delegate.window];
}
}
sqlite3_bind_int(revertStmt, 0, myID);
if(SQLITE_DONE == sqlite3_step(revertStmt)) {
self.signature = [NSString stringWithUTF8String:(char *)sqlite3_column_text(revertStmt, 0)];
self.sigdate = [NSString stringWithUTF8String:(char *)sqlite3_column_text(revertStmt, 1)];
}
sqlite3_reset(revertStmt);
}
私はそれが間違っていて何をすべきか尋ねてもよいでしょうか? –
私はsqlite3_column_text(revertStmt、0)を呼び出して、それがnullと来るとSIGABRTを通過するように動作するとエラーが発生しますが、sqliteデータベースへの呼び出しを直接行い、適切な値を返します。 – AquaCash5