我有一个数组,它使用NSUserDefaults将所有用户输入保存为字符串数组。在另一个视图控制器中,可以在UITableView中查看此数组数据。当我删除UITableView中的行时,有没有办法删除数组中的记录?
请参阅以下内容以获取更多详细信息。
https://stackoverflow.com/questions/32679088/tableview-nsinternalinconsistency-exception-error
谢谢
答案 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;