OC数据储存本地(一)-----iOS----NSUserDefaults 保存 清空

具体来说NSUserDefaults是iOS系统提供的一个单例类(iOS提供了若干个单例类),通过类方法standardUserDefaults可以获取NSUserDefaults单例

常见到的轻量级的储存,NSUserDefaults单例以key-value的形式存储了一系列偏好设置,key是名称,value是相应的数据。存/取数据时可以使用方法objectForKey:setObject:forKey:来把对象存储到相应的plist文件中,或者读取,既然是plist文件,那么对象的类型则必须是plist文件可以存储的类型,正如官方文档中提到的——

  • NSData
  • NSString
  • NSNumber
  • NSDate
  • NSArray
  • NSDictionary

比比方说登录时候的返回值,要保存这些数据,以便于各个模块的时候运用

     NSUserDefaults *loginData = [NSUserDefaultsstandardUserDefaults];

            [loginDatasetObject:mode.IDforKey:@"loginID"];

            [loginDatasetObject:mode.iconUrlforKey:@"loginIcon"];

            [loginDatasetObject:mode.accountforKey:@"loginAccount"];

            [loginDatasetObject:mode.usernameforKey:@"loginName"];

而读取的时候直接拿出来就行了,

        NSUserDefaults *loginData = [NSUserDefaultsstandardUserDefaults];

        cell.detailTextLabel.text = [loginDataobjectForKey:@"loginName"];

非常方便


NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *firstName = [defaults objectForKey:@"firstName"]
NSInteger age = [defaults integerForKey:@"Age"];

NSData *imageData = [defaults dataForKey:@"image"];
UIImage *image = [UIImage imageWithData:imageData];
我们通过为三个数据设置key的方式把NSIntegerNSStringUIImage三种数据存储下来,其中图片是通过归档为NSData的方式进行存储的,除此之外,还可以被转为NSNumberNSString类型。顺便提一句,这里NSInteger没有星号,因为NSInteger根据系统是64位还是32位来判断自身是long还是int类型,并且它也不是一个标准Objective-C对象。




NSUserDefaults的清理

//方法一

// 先将其转化为字典,然后用forin遍历删除即可

        NSUserDefaults *defatluts = [NSUserDefaults standardUserDefaults];

        NSDictionary *dictionary = [defatluts dictionaryRepresentation];

        for(NSString *key in [dictionary allKeys]){

            [defatluts removeObjectForKey:key];

            [defatluts synchronize];

        }


//方法二

[[NSUserDefaults standardUserDefaults] removeObjectForKey:key];

[[NSUserDefaults standardUserDefaults]synchronize];



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值