我有一個按鈕,可以從選中切換到未選中。當用戶將其更改爲選擇時,我希望它保存設置。重新進入桌面視圖後,所有先前選擇的按鈕仍應被選中,但它們不是。通過我的代碼,我可以設置一個行按鈕,但是如果我選擇多行,只有最後一個保持選中狀態。以下是我已經試過: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];
}
現在缺少的存儲多個所選行?
你可能已經發現你忽略的關鍵'的最後一個值@「名」',所以從字面上你只儲存的最後指標 - 而不是選擇指數的集,所以我贏了」不要提這樣明顯的事情...... – holex 2014-10-29 15:03:35
你真的不需要調用'synchronize'。 – zaph 2014-10-29 15:12:47