У меня есть кнопка, которая переключается с выбранного на невыбранный. Когда пользователь меняет его на выбранный, я хочу, чтобы он сохранил настройки. При повторном входе в представление таблицы все выбранные ранее кнопки должны быть выбраны, но это не так. С моим кодом я могу установить одну строку, но если я выберу несколько строк, останется только последний. Вот что я пытался:NSUserDefaults не сохранит выбор для нескольких строк.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
// code...
if([cell.nameLbl.text isEqualToString:[[NSUserDefaults standardUserDefaults] objectForKey:@"name"]]){
[cell.likeBtn setSelected:YES];
}else{
[cell.likeBtn setSelected:NO];
}
}
И в методе делегата для моего TableViewCell
-(void)tableViewCell:(TableViewCell *)cell {
//code...
NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
Car *car = self.carArray[indexPath.row];
NSUserDefaults *userPreferences = [NSUserDefaults standardUserDefaults];
[userPreferences setObject:car.name forKey:@"name"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
Что не хватает для хранения нескольких выбранных строк?
вы, вероятно, заметили перекручивание последнего значения ключа '@«имя»', так что буквально вы храните самое последний индекс только - не _set_ выбранных показателей, так что я выиграл» t упоминать такую очевидную вещь ... – holex
Вам действительно не нужно вызывать 'synchronize'. – zaph