我为连接到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];
无法正常工作。
答案 0 :(得分:2)
看起来您可能没有使用相同的密钥来添加和删除数据。要添加,您使用了:
self.appDelegate.defaultBTServer.selectPeripheralInfo.uuid
但要删除您使用的数据:
application.defaultBTServer.selectPeripheralInfo.uuid
如果这些表达式的值不完全相同,您将无法删除您添加的数据,因为显然密钥是错误的。所以,检查一下。
此外,请确保在删除后调用[defaults synchronize]
以更新存储中的默认值。