Я создаю приложение для iPhone, используя Objective-C, который хранит данные в базе данных SQLite.У меня проблема в том, что когда мое приложение работает, я могу внести определенные изменения в данные в таблице.В частности, мне нужно разрешить пользователю нажимать на кнопку и выбирать определенные рестораны из списка как «любимые» (true) или «не любимые» (false).
Когда работает мой симуляторкод работает нормально.Однако, когда я закрываю сеанс и перезапускаю приложение, изменения, которые я внес в предыдущий сеанс, не сохраняются.Вот соответствующий блок кода:
- (void) addFavourite:(NSString *)rName{
sqlite3 *database;
NSString *updateString = nil;
NSString *trueStatement = @"true";
NavButtonAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
if (sqlite3_open([delegate.databasePath UTF8String], &database) == SQLITE_OK) {
updateString = @"UPDATE gtarestaurant set isFavourite = ? WHERE name = ?";
const char *sqlStatement = [updateString UTF8String];
sqlite3_stmt *compiledStatement;
if (sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) {
sqlite3_bind_text(compiledStatement, 1, [trueStatement UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(compiledStatement, 2, [rName UTF8String], -1, SQLITE_TRANSIENT);
while (sqlite3_step(compiledStatement) == SQLITE_ROW) {
}
sqlite3_finalize(compiledStatement);
}
sqlite3_close(database);
}
}
Может кто-нибудь увидеть, где я иду не так?Похоже, что моя проблема фиксирует мои изменения в базе данных после того, как пользователь их внесет