我用这个代码做这件事
这是标题
#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”而终止应用程序,原因:“创建删除语句时出错。'在......之外
请帮我解决这个问题