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


    原文:http://blog.csdn.net/lxinl/article/details/11770675

    OS下可以使用NSUserDefaults、sqlite、CoreData几种常用的方式来存储数据,其中NSUserDefaults用来存储类似用户的配置等这些的数据,后两者用户存储大批量和比较复杂的数据。NSUserDefault的使用比较简单:

    1. NSUserDefaults *mySettingData = [NSUserDefaults standardUserDefaults];  

    创建NSUserDefaults对象之后即可往里面添加数据,它支持的数据类型有NSString、 NSNumber、NSDate、 NSArray、NSDictionary、BOOL、NSInteger、NSFloat等系统定义的数据类型,如果要存放自定义的对象(如自定义的类对象),则必须将其转换成NSData存储:

    1. NSArray *arr = [[NSArray alloc] initWithObjects:@"arr1", @"arr2", nil]  
    2. [mySettingData setObject:arr forKey:@"arrItem"];  
    3. [mySettingData setObject:@"admin" forKey:@"user_name"];  
    4. [mySettingData setBOOL:@YES forKey:@"auto_login"];  
    5. [mySettingData setInteger:1 forKey:@"count"];  


    往NSUserDefaults添加数据后,它们就变成了全局的变量,App中即可读写NSUserDefault中的数据:

    1. NSUserDefaults *mySettingDataR = [NSUserDefaults standardUserDefaults];  
    2.   
    3. NSLog(@"arrItem=%@", [mySettingDataR objectForKey:@"arrItem"]);  
    4. NSLog(@"user_name=%@", [mySettingDataR objectForKey:@"user_name"]);  
    5. NSLog(@"count=%d", [mySettingDataR integerForKey:@"count"]);  

    如果想删除某个数据项,可以使用removeObjectForKey删除数据:

    1. [mySettingData removeObjectForKey:@"arrItem"];  

    需要注意的是,NSUserDefaults是定时把缓存中的数据写入磁盘的,而不是即时写入,为了防止在写完NSUserDefaults后程序退出导致的数据丢失,可以在写入数据后使用synchronize强制立即将数据写入磁盘:

    1. [mySettingData synchronize];  

    运行上面的语句后,NSUserDefaults中的数据即被写入到.plist文件中,如果是在模拟器上运行程序,可以在Mac的/Users/YOUR-USERNAME/Library/Application Support/iPhone Simulator/4.1/Applications/YOUR-APP-DIR/Library/Prefereces目录下面找到一个文件名为YOUR-Bundle_Identifier.plist的plist文件,用Xcode打开该文件,可以看到刚才写入的数据。

  • 相关阅读:
    Win10 安装GNU 编译器(gcc、g++ 和 gfortran)
    三维地图制作 数据选型 相关参考资料
    借助mapshaper的简化来修复geojson的拓扑错误
    一种改进后的turf.idw算法
    基于Geojson的点集的抽稀Js实现
    OL3-Cesium 二三维鼠标事件统一处理
    About TopoJSON
    基于 geojson数据类型面转线Transforms Polygons and MultiPolygons to LineStrings.
    数据库文档编写辅助脚本
    Extensible Messaging and Presence Protocol (XMPP): Core
  • 原文地址:https://www.cnblogs.com/whqios/p/4572404.html
Copyright © 2020-2023  润新知