私はこのコードをこのことに使用します
これはヘッダーです
#import "SQLAppDelegate.h"
#import "RootViewController.h"
#import "Coffee.h"
static sqlite3 *database = nil;
static sqlite3_stmt *deleteStmt = nil;
@implementation SQLAppDelegate
削除方法はこちら
- (void) removeCoffee:(NSNumber *)coffeeObj {
NSLog(@"coffeeObj%@",coffeeObj);
NSInteger myInteger = [coffeeObj integerValue];
int i = [coffeeObj integerValue];
NSLog(@"myInteger%d",myInteger);
NSLog(@"i%d",i);
// this print index number of the row which was selected
if(deleteStmt == nil) {
const char *sql = "delete from Coffee where coffeeID = ?";
//coffeeID is primary key it will be like 0,1,2,3,4...
if(sqlite3_prepare_v2(database, sql, -1, &deleteStmt, NULL) != SQLITE_OK)
//以下の行では、質問の最後にあるエラーでクラッシュします
NSAssert1(0, @"Error while creating delete statement. '%s'", sqlite3_errmsg(database));
}
//When binding parameters, index starts from 1 and not zero.
sqlite3_bind_int(deleteStmt, 1, myInteger);
if (SQLITE_DONE != sqlite3_step(deleteStmt))
NSAssert1(0, @"Error while deleting. '%s'", sqlite3_errmsg(database));
sqlite3_reset(deleteStmt);
[coffeeArray removeObjectAtIndex:myInteger];
}
キャッチされない例外 'NSInternalInconsistencyException' が原因でアプリを終了しています。理由: 'delete ステートメントの作成中にエラーが発生しました。'のうち
この問題から抜け出す方法を教えてください