NSUserDefaults重置数据

最近遇到一个很奇怪的问题,通常情况下,重置NSUserDefaults使用的方法为:

[NSUserDefaults resetStandardUserDefaults];

但是实际使用中偶尔出现了重置不成功的情况,因此另辟蹊径,改为遍历UserDefaults的所有属性后逐条删除,代码如下:

    NSDictionary *dic = [[NSUserDefaults standardUserDefaults]dictionaryRepresentation];
    for (id key in [dic allKeys]) {
        [[NSUserDefaults standardUserDefaults]removeObjectForKey:key];
    }
    [[NSUserDefaults standardUserDefaults]synchronize];

看起来没上面那种方便,但是胜在简单粗暴直接有效!

时间: 2024-10-12 11:46:30

NSUserDefaults重置数据的相关文章

iOS 数据持久化之使用NSUserDefaults存储数据

原文:http://blog.csdn.net/lxinl/article/details/11770675 OS下可以使用NSUserDefaults.sqlite.CoreData几种常用的方式来存储数据,其中NSUserDefaults用来存储类似用户的配置等这些的数据,后两者用户存储大批量和比较复杂的数据.NSUserDefault的使用比较简单: [cpp] view plaincopy NSUserDefaults *mySettingData = [NSUserDefaults s

NSUserDefaults存储数据

1.用处:NSUserDefaults用来存储类似用户的配置.程序设置信息等这些的数据 iOS下可以使用NSUserDefault.NSKeyedArchiver.sqlite.CoreData几种常用的方式来存储数据,其中NSUserDefaults用来存储类似用户的配置等这些的数据,后两者用户存储大批量和比较复杂的数据. NSUserDefault 基本上支持所有的原生数据类型NSString. NSNumber.NSDate. NSArray.NSDictionary.BOOL.NSInt

NSUserDefaults(数据存储)

NSUserDefaults适合存储轻量级的本地数据,比如要保存一个登陆界面的数据,用户名.密码之类的,个人觉得使用NSUserDefaults是首选.下次再登陆的时候就可以直接从NSUserDefaults里面读取上次登陆的信息咯. 因为如果使用自己建立的plist文件什么的,还得自己显示创建文件,读取文件,很麻烦,而是用NSUserDefaults则不用管这些东西,就像读字符串一样,直接读取就可以了. NSUserDefaults支持的数据格式有:NSNumber(Integer.Float

【OC学习-30】NSUserDefaults把数据存储在本地的一种方式

我们先创建一个NSUserDefaults对象(其实类似于一个字典),然后把数据写入到这个对象中,然后把这个对象里面的数据保存在本地.然后我们把这些代码删除掉,重新创建一个对象来调用在本地的数据,看是否能调出,如果能,说明之前已经成功把数据本地化了. (1)我们创建一个空的application. (2)把AppDelegate.m下面的那些函数都删除掉.在第一个函数里面补充如下代码,然后点击运行. #import "AppDelegate.h" @implementation App

关于A界面present到B界面,A界面的数据无法传递到B界面,B界面dismiss后A界面重置数据了

IOS7之后,如此无法传递数据到下一界面 查询得知,下一个界面会先初始化会先走viewDidLoad,导致界面加载后无法显示传递的数据,其实是传递过来了的, 一般遇到此问题是将传递来的数据下载viewWillAppear里,这样界面出现后就正确显示了. ---------------------------------------------- LZ遇到的问题是用viewWillAppear解决了数据的问题,可是当调用相机的UIImagePickerController,  dismiss回来时

NSUserDefaults 存储数据到本地,NSUserDefaults 使用

//以下是我用 NSUserDefaults 将 NSData 类型的地址数组存在本地. UserAddressEntity *userAddressEntity = [[UserAddressEntity alloc]init];     userAddressEntity.addName = addName.text;     userAddressEntity.addPhone = addPhone.text;     userAddressEntity.addressInfo = [NS

ios NSUserDefaults存储数据(偏好设置)

1.NSUserDefaults用于存储数据量小的数据,主要是用户配置,但也可以支持存储一些小数据包括:NSString, NSNumber, NSDate, NSArray, NSDictionary2.数据存放于一个plist文件中.这个文件位于在 app同级目录的/Library/Preferences目录下 3.NSUserDefaults主要是 setObject 和 object ForKey,大数据使用其他的存储,如Sqlite3,CoreDate等: 4.使用偏好设置对数据进行保

使用NSUserDefaults进行数据缓存时遇到的问题

从服务器获取到字典类型数据,用NSUserDefaults缓存到本地 初始的- (void)dataLoad {    NSMutableDictionary * aaa = [originalData valueForKey:@"userInfo"]; [userDefaults setValue:aaa forKey:@"data"]; [userDefaults synchronize]; } 由于数据中有CFNULL 调用下面方法,进行替换 - (void)

IOS开发—数据存储(直接写入、NSUserDefaults、NSkeyedArchiver)

数据存储(直接写入.NSUserDefaults.NSkeyedArchiver) ios中常用文件存取的方法有: 1.直接写文件的方式,可以存储的对象有NSString.NSArray.NSDictionary.NSData.NSNumber,数据全部存放在一个属性列表文件(*.plist文件)中. 2.NSUeserDefaults(偏好设置),用来存储应用设置信息,文件放在perference目录下. 3.归档操作(NSkeyedArchiver),不同于前面两种,它可以把自定义对象存放在