如何在NSUserDefault中删除一堆NSData

时间:2015-03-21 01:19:38

标签: ios nsuserdefaults 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];

无法正常工作。

1 个答案:

答案 0 :(得分:2)

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

self.appDelegate.defaultBTServer.selectPeripheralInfo.uuid

但要删除您使用的数据:

application.defaultBTServer.selectPeripheralInfo.uuid

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

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