내 tableView에 표시되는 배열의 모든 객체를 제거하는 버튼을 만들었습니다. 그런 다음 데이터를 다시로드하고 tableview가 비어 있습니다. 하지만 SQLite 데이터베이스뿐만 아니라 배열에서 모든 데이터를 삭제할 수 있습니까? 이제 데이터를 다시 시작할 때 발생합니다.SQLite delete 구문을 사용하여 모든 데이터 삭제?
이버튼 무효 :
- (void) deleteAllButton_Clicked:(id)sender {
[appDelegate removeAllBooks:nil];
[self.tableView reloadData];
}
AppDelegate에 무효 : Book.m에서
-(void) removeAllBooks:(Book *)bookObj {
//Delete it from the database.
[bookObj deleteAllBooks];
//Remove it from the array.
[bookArray removeAllObjects];
}
삭제 구문
- (void) deleteAllBooks {
if(deleteStmt == nil) {
const char *sql = "WHAT DO I HAVE TO DO TO DELETE ALL THE ROWS?";
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, bookID);
if (SQLITE_DONE != sqlite3_step(deleteStmt))
NSAssert1(0, @"Error while deleting. '%s'", sqlite3_errmsg(database));
sqlite3_reset(deleteStmt);
}
보다 더 ID가 존재하지 않기 때문에이 테이블의 모든 행을 삭제하는 경우 문제가 무엇인지 알아 내라. 삭제 구문에 NSLog를 삽입했을 때 나는 아무런 반응을 얻지 못했습니다. 즉, appDelegate void가 book.m에 삭제를 수행하라는 메시지를 보내지 않는다는 것을 의미합니다 ... 버튼 동작이있는 RootViewcontroller에서 deleteAllBooks 메서드에 어떻게 액세스합니까? – Leif
hvis du skjønte hva jeg mente ... – Leif
아니, 그게 무슨 뜻인지 잘 모르겠다. 테이블의 모든 행을 삭제하는 SQL이 내 대답에 쓴 것입니다. 그것이 질문이 아니면, 당신이 정말로 묻고있는 것을 분명히해야합니다. 나는 iOS 질문 (또는 NSAssert의 출처는 무엇이든간에)을 도와 드릴 수 없습니다. –