从UITableView

时间:2015-09-22 10:49:33

标签: ios swift

我有一个数组,它使用NSUserDefaults将所有用户输入保存为字符串数组。在另一个视图控制器中,可以在UITableView中查看此数组数据。当我删除UITableView中的行时,有没有办法删除数组中的记录?

请参阅以下内容以获取更多详细信息。

https://stackoverflow.com/questions/32679088/tableview-nsinternalinconsistency-exception-error

谢谢

5 个答案:

答案 0 :(得分:0)

在tableview删除功能

中尝试这样
 NSMutableArray *dataArray = [[NSUserDefaults standardUserDefaults] valueForKey:@"SavedArray"];
[dataArray removeObjectAtIndex:yourIndex];
[[NSUserDefaults standardUserDefaults ] setValue:dataArray forKey:@"SavedArray"];
[[NSUserDefaults standardUserDefaults]synchronize];

使用此代码,您将在userdefaults中删除或重新保存数组

答案 1 :(得分:0)

在你的didSelect

NSMutableArray *yourArray=[[NSMutableArray alloc]init];
[yourArray removeObjectAtIndex:indexPath.row];
[self.tableView reloadData];

答案 2 :(得分:0)

这是一个三步过程:

第1步:获取&将您的用户详细信息保存在可变数组中:

NSMutableArray *userDetailsArray = [[[NSUserDefaults standardUserDefaults] objectForKey:@"userDetails"] mutableCopy];

第2步:用户删除内容后更新数据阵列。使用以下任何一种方法:

[userDetailsArray removeObject:<Your_Object>];
[userDetailsArray removeObjectAtIndex:<Your_Index>];

第3步:最后将其保存回NSUserDefaults

[[NSUserDefaults standardUserDefaults] setObject:userDetailsArray forKey:@"userDetails"];
[[NSUserDefaults standardUserDefaults] synchronize];

答案 3 :(得分:0)

如果要删除所有NSUser默认值,只需使用: -

if (!auth)
{
    self.window.rootViewController = [[AuthViewController alloc] init];
} else {
    self.window.rootViewController = [[DataViewController alloc] init];
}

答案 4 :(得分:0)

基于Apple文档NSUserDefaults类参考&#34; NSUserDefaults返回的值是不可变的,即使您将可变对象设置为值也是如此。例如,如果您将可变字符串设置为&#34; MyStringDefault&#34;的值,则稍后使用stringForKey:检索的字符串将是不可变的&#34;