zoukankan      html  css  js  c++  java
  • NSUserDefaults 的用法

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

    该数据实际上是以“键值对”形式保存的(类似于NSDictionary),因此我们需要通过key来读取或者保存数据(value)。

    NSUserDefaults支持的数据格式有:

    NSNumber(Integer、Float、Double),NSString,NSDate,NSArray,NSDictionary,BOOL类型

    NSUserDefaults有2方法:

    saveNSUserDefaults:用于将各种类型数据保存到NSUserDefaults中;

    readNSUserDefautls:用于从NSUserDefaults中读取各种类型的数据。在viewDidLoad中调用这两个方法就可以看出结果;

    获取一个NSUserDefaults引用

    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
    

     保存数据

    [userDefaults setInteger:1 forKey:@"crp"];
    [userDefaults synchronize];
    

     读取数据

    int i = [userDefaults integerForKey:@"crp"];
    
    //保存数据:
    NSData *objColor = [NSKeyedArchiver archivedDataWithRootObject:[UIColor redColor]];
    [[NSUserDefaults standardUserDefaults]setObject:objColor forKey:@"myColor"];
    //读取数据:
    NSData *objColor = [[NSUserDefaults standardUserDefaults]objectForKey:@"myColor"];
    UIColor *myColor = [NSKeyedUnarchiver unarchiveObjectWithData:objColor];
    
    if (isRememberName) {
    //设置用户名和密码 [user setObject:userNameField.text forKey:@"userName"]; [user setObject:passwordField.text forKey:@"passWord"]; [user synchronize]; }else{
    //取消记住密码 [user removeObjectForKey:@"userName"]; [user removeObjectForKey:@"passWord"]; //调用synchronize函数将立即更新这些默认值。 [user synchronize]; }
    其实它存储在应用程序内置的一个plist文件里,这个可以根据路径看到。
    比如说这个是你的程序沙盒位置
    /UsersLibrary/Application Support/iPhoneSimulator/4.1/Applicati*****/29788E40-AF47-45A0-8E92-3AC0F501B7F4/,(这个是应用程序对应在mac上的位置)
    这个下面有/Library/Prefereces,里面有个plist文件,存储的就是你的userDefaults
    想要删掉的话,用removeObjectForKey或者删掉沙盒,也就是你的应用程序然后重新安装。
  • 相关阅读:
    Vue插件之导出EXCEl
    vue.js--加载JSON文件的两种方式
    vue项目中axios的封装
    雪碧图布局
    开始学习算法
    Java中有关Null的9件事
    一个抓取知乎页面图片的简单爬虫
    浅析Java中的final关键字
    Java中String、StringBuilder以及StringBuffer
    把一个数组向右循环移动k位要求时间复杂度为O(n)
  • 原文地址:https://www.cnblogs.com/penger/p/4148870.html
Copyright © 2011-2022 走看看