从nsuserdefaults中的字典数组中删除对象

时间:2014-09-16 07:23:43

标签: ios

我在userdefaults中保存了一个字典数组。在tableview中查看在dictionaty中保存的对象。当点击表格视图单元格的删除按钮时,会弹出一个确认用户是否要删除的弹出窗口。单击是时,应从表视图和用户默认值中删除所选对象。 请帮忙。 任何帮助都会很明显。 提前谢谢。

2 个答案:

答案 0 :(得分:2)

没有动画的简单版

// First of all remove it from userDefaults
NSMutableArray *yourArray = [[[NSUserDefaults standardUserDefaults] objectForKey:@"YourArray"] mutableCopy];
[yourArray removeObjectAtIndex:indexPath.row];
[[NSUserDefaults standardUserDefaults] setObject:yourArray forKey:@"YourArray"];
[[NSUserDefaults standardUserDefaults] synchronize];   

// Reload your tableView with a new data
self.tableData = yourArray;
[self.tableView reloadData];

没有动画的扩展版

- (void)tableView:(UITableView *)tableView
commitEditingStyle:(UITableViewCellEditingStyle)editingStyle
forRowAtIndexPath:(NSIndexPath *)indexPath
{
    // First of all remove it from userDefaults
    NSMutableArray *yourArray = [[[NSUserDefaults standardUserDefaults] objectForKey:@"YourArray"] mutableCopy];
    [yourArray removeObjectAtIndex:indexPath.row];
    [[NSUserDefaults standardUserDefaults] setObject:yourArray forKey:@"YourArray"];
    [[NSUserDefaults standardUserDefaults] synchronize];   

    // Refresh your tableView with a new data
    self.tableData = yourArray;
    [self.tableView beginUpdates];
    [self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationMiddle];
    [self.tableView endUpdates];
}

答案 1 :(得分:-2)

要更改用户默认值,请使用setObject方法。