0

私はこのコードをこのことに使用します

これはヘッダーです

#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 ステートメントの作成中にエラーが発生しました。'のうち

この問題から抜け出す方法を教えてください

4

1 に答える 1