保存indexPaths列表

时间:2014-04-24 13:41:57

标签: ios objective-c uitableview

我通常会在UiTableView中保存NSUserDefaults的所选indexPath,这就是我通常的做法:

self.lastIndexPathUsed = indexPath.row;

NSUserDefaults *userdefaults = [NSUserDefaults standardUserDefaults];
[userdefaults setObject:[NSString stringWithFormat:@"%ld",(long)indexPath.row] forKey:@"lastIndexPathUsedForSellerType"];
[[NSUserDefaults standardUserDefaults] synchronize];

然后我恢复它:

    self.lastIndexPathUsed = [[[NSUserDefaults standardUserDefaults] objectForKey:@"lastIndexPathUsedForSellerType"] floatValue];

所以self.lastIndexPathUsed只是一个浮点值。

以上在单个选择表视图中工作正常。然而,在多选桌面视图中,我无法看到它的工作原理。

当UITableView在屏幕上时,我将所有indexPaths保存到一个数组中。但是,将该数组保存到NSUserDefaults会导致崩溃,因为indexPath不是这样的对象。

如何保存数组indexPaths如何进入NSUserDefaults?

2 个答案:

答案 0 :(得分:1)

尝试将阵列存档到NSData,然后再将其保存到NSUserDefaults

NSData *indexPathArrayData = [NSKeyedArchiver archivedDataWithRootObject:_indexPathArray];

NSData获取NSUserDefaults后,您可以取消归档:

_indexPathArray = [NSKeyedUnarchiver unarchiveObjectWithData:indexPathArrayData];

答案 1 :(得分:1)

你可以试试这个:

[[NSUserDefaults standardUserDefaults] setObject:yourMutableArray forKey:@"Key"];

然后就这样:

NSMutableArray *array = [NSMutableArray arrayWithArray:[[NSUserDefaults standardUserDefaults] objectForKey:@"Key"]];

希望它有所帮助。