如何在NSUserDefault中删除一堆NSData



我为连接到iOS设备的外设存储了一些设置,但我想添加一个按钮供用户删除此外设,这意味着我必须删除与此外设相关的所有设置。

使用NSData:,存储起来很简单

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSData *encodedObject = [NSKeyedArchiver archivedDataWithRootObject:self.appDelegate.defaultBTServer.selectPeripheralInfo];
[defaults setObject:encodedObject forKey:self.appDelegate.defaultBTServer.selectPeripheralInfo.uuid];
[defaults synchronize];

但是如何删除与该selectPeripheralInfo.uuid相关的设置?我找到

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults removeObjectForKey:application.defaultBTServer.selectPeripheralInfo.uuid];

无法工作。

看起来您可能没有使用相同的键来添加和删除数据。要添加,您使用了:

self.appDelegate.defaultBTServer.selectPeripheralInfo.uuid

但是要删除您使用的数据:

application.defaultBTServer.selectPeripheralInfo.uuid

如果这些表达式的值不完全相同,您将无法删除添加的数据,因为很明显,键是错误的。所以,检查一下。

此外,请确保在删除后调用[defaults synchronize]以更新存储中的默认值。

最新更新