Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在NSUserDefault中删除一组NSData_Ios_Nsuserdefaults_Nsdata - Fatal编程技术网

Ios 如何在NSUserDefault中删除一组NSData

Ios 如何在NSUserDefault中删除一组NSData,ios,nsuserdefaults,nsdata,Ios,Nsuserdefaults,Nsdata,我为连接到iOS设备的外围设备存储了一些设置,但我想为用户添加一个按钮来删除此外围设备,这意味着我必须删除与此外围设备相关的所有设置 使用NSData进行存储非常简单: NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSData *encodedObject = [NSKeyedArchiver archivedDataWithRootObject:self.appDelegate.defaultBTServe

我为连接到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
但要删除您使用的数据,请执行以下操作:

self.appDelegate.defaultBTServer.selectPeripheralInfo.uuid
application.defaultBTServer.selectPeripheralInfo.uuid
如果这些表达式的值不完全相同,您将无法删除添加的数据,因为很明显,键是错误的。那么,检查一下

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