У меня вопрос ... У меня есть приложение, использующее sqlite для сохранения некоторых данных. Все работает отлично, то есть я могу добавлять, удалять, просматривать данные. Данные являются постоянными, когда приложение переходит в фоновый режим. Теперь, когда я удаляю приложение из памяти или перезагружаю iPhone, база данных повреждена, и все данные испорчены!
У меня есть вызов класса dbAccess, в котором определяются все действия базы данных (добавление, удаление, получение строк). В конце у меня есть действие finalize, которое завершает все используемые операторы, а затем закрывает базу данных.
+ (void)finalizeStatements{
NSLog(@"Finalizing the Delete Statements");
if(deleteStmt) {
NSLog(@"Delete Statement exist... finalization");
sqlite3_finalize(deleteStmt);
deleteStmt = nil;
}
NSLog(@"Finalizing the Add Statements");
if(addStmt) {
NSLog(@"Add Statement exist... finalization");
sqlite3_finalize(addStmt);
addStmt = nil;
}
NSLog(@"Finalizing the Store Statements");
if(storeStmt) {
NSLog(@"Store Statement exist... finalization");
sqlite3_finalize(storeStmt);
storeStmt = nil;
}
NSLog(@"Finalizing the Agent Statements");
if(agentStmt) {
NSLog(@"Agent Statement exist... finalization");
sqlite3_finalize(agentStmt);
agentStmt = nil;
}
NSLog(@"Closing the Database");
if(database) {
NSLog(@"The database exist... closing it");
sqlite3_close(database);
}
}
Этот метод вызывается делегатом приложения, когда applicationDidEnterBackground и applicationWillTerminate. Метод openDatabase вызывается, когда applicationDidBecomeActive.
Есть идеи, почему база данных повреждена?
Спасибо.