UITableView не удаляет запись из NSUserDefaults

#iphone #uitableview #nsuserdefaults

#iPhone #uitableview #nsuserdefaults

Вопрос:

Вот мой код для удаления значения. Просмотр таблицы удаляет запись временно, когда я перезапускаю свое приложение, в нем также отображаются удаленные записи…

 -(void)tableView:(UITableView *)atableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        [bookmarks removeObjectAtIndex:indexPath.row];
        [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath, nil] withRowAnimation:UITableViewRowAnimationFade];
       [[NSUserDefaults standardUserDefaults] setObject:bookmarks forKey:@"Bookmarks"];  [self.tableView reloadData];
    }
}
  

Пожалуйста, помогите.

Комментарии:

1. вы хотите удалить только определенное значение? или полный список?

2. [[[NSUserDefaults standardUserDefaults] setObject:bookmarks forKey:@»Закладки»] синхронизировать]; добавить это

3. /.m:130: ошибка: значение void не игнорируется, как должно быть в этой строке

4. затем используйте ее следующим образом, как указано NSUserDefaults *prefs = [Стандартные пользовательские настройки]; [настройки setObject:bookmarks forKey:@»Закладки»]; [настройки синхронизации];

Ответ №1:

Попробуйте это :

 // Your code    
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];  
[prefs setObject:bookmarks forKey:@"Bookmarks"];    
// saving it all  
[prefs synchronize];  
  

Комментарии:

1. Он удаляет записи, но когда я пытаюсь добавить запись, он не добавляет alwaysNSMutableArray *bookmarks = [[[NSUserDefaults standardUserDefaults] arrayForKey:@»Bookmarks»] изменяемая копия]; if (!bookmarks) { bookmarks = [[NSMutableArray alloc] init]; } [bookmarks AddObject:[[[запрос веб-браузера самостоятельно] URL] absoluteString ]]; [[NSUserDefaults standardUserDefaults] setObject:закладки для ключа:@»Bookmarks»]; [выпуск закладок];

2. Вы выделяете память для закладок в if (!bookmarks). Как насчет другого условия. Если вы освобождаете массив вне if(){}, вам нужно выделить для него память.

3. Я использовал ваш код ответа для вставки пользовательского значения по умолчанию, и он работает нормально. спасибо за помощь