iOS下可以使用NSUserDefaults、sqlite、CoreData几种常用的方式来存储数据,其中NSUserDefaults用来存储类似用户的配置等这些的数据,后两者用户存储大批量和比较复杂的数据。NSUserDefault的使用比较简单:
- NSUserDefaults *mySettingData = [NSUserDefaults standardUserDefaults];
创建NSUserDefaults对象之后即可往里面添加数据,它支持的数据类型有NSString、 NSNumber、NSDate、 NSArray、NSDictionary、BOOL、NSInteger、NSFloat等系统定义的数据类型,如果要存放自定义的对象(如自定义的类对象),则必须将其转换成NSData存储:
- NSArray *arr = [[NSArray alloc] initWithObjects:@"arr1", @"arr2", nil]
- [mySettingData setObject:arr forKey:@"arrItem"];
- [mySettingData setObject:@"admin" forKey:@"user_name"];
- [mySettingData setBOOL:@YES forKey:@"auto_login"];
- [mySettingData setInteger:1 forKey:@"count"];
往NSUserDefaults添加数据后,它们就变成了全局的变量,App中即可读写NSUserDefault中的数据:
- NSUserDefaults *mySettingDataR = [NSUserDefaults standardUserDefaults];
- NSLog(@"arrItem=%@", [mySettingDataR objectForKey:@"arrItem"]);
- NSLog(@"user_name=%@", [mySettingDataR objectForKey:@"user_name"]);
- NSLog(@"count=%d", [mySettingDataR integerForKey:@"count"]);
如果想删除某个数据项,可以使用removeObjectForKey删除数据:
- [mySettingData removeObjectForKey:@"arrItem"];
需要注意的是,NSUserDefaults是定时把缓存中的数据写入磁盘的,而不是即时写入,为了防止在写完NSUserDefaults后程序退出导致的数据丢失,可以在写入数据后使用synchronize强制立即将数据写入磁盘:
- [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打开该文件,可以看到刚才写入的数据。
相关推荐
自己写的一个NSUserDefaults 关于字符串,数值的快速存取。
使用系统的NSUserDefaults进行存取值实在是难以对其进行统一管理,为此NSUserDefaultsModel就很好的解决了这一难题,并且还支持Cocoapods。 github地址:https://github.com/liuchongfaye/NSUserDefaultsModel ...
Swift 用户首选项 NSUserDefaults
PAPreferences, 使用 @dynamic 访问 NSUserDefaults PAPreferences使用NSUserDefaults存储用户首选项的简便方法。PAPreferences将 dynamic 属性映射到 NSUserDefaults getter和 setter,以便访问默认值,就像它们是...
IOS应用源码——NSUserdefaults(读取和写入自定义对象).zip
沙盒 和 数据持久化存储 Core Data 和 NSUserDefaults 案例
用NSUserDefaults存储数据做的一个登陆界面,当用户名和密码对的时候就移除登陆界面
前两年IOS应用源码-主要是用于毕业设计学习的。
XBUserDefaultsXBUserDefaults是利用Objective-C RunTime 机制对NSUserDefaults进行一层封装。大大增加了易用性和可维护性。性能基本毫无影响(100000次NSString读写,耗时仅多0.4s±0.05s)。几乎每个iOS项目中都会...
object-c基础语法NSUserDefaults, 适合初学者,主要学习NSUserDefaults的设置,NSUserDefaults读取值,读取所有用户偏好设置,怎样持久化设置用户设置等
IOS中NSUserDefaults保存账号密码:将账号、密码保存到NSUserDefaults
NSUserDefaults + SevenSecurityLayers.h(已过时,不再维护) 为NSUserDefaults提供加密层以安全保存数据的类别。 使用强大的AES 356位加密####效益:*仅用一行代码保护用户数据。*支持混淆二进制源中的密钥*...
使用NSUserDefaults存储自定义对象.doc
NSUserdefaults读取和写入自定义对象.rar
在天气预报实例中, 熟练掌握 NSUserDefaults 的应用,
GVUserDefaults, 通过属性访问 NSUserDefaults GVUserDefaults - 通过属性访问 NSUserDefaults 厌倦了编写所有代码来获取和设置NSUserDefaults中的默认值? 要使用属性来完成代码完成和编译器检查?用法在 ...
为什么不是 NSUserDefaults? 当您从NSUserDefaults检索值时,它会作为不可变对象返回。 我发现这有点烦人。 我希望我的设置管理器很简单,而不是一件苦差事。 JBSSettings允许您决定何时将值保存到磁盘,并且它不会...
iOS之数据持久化-NSUserDefaults,在进入后台模式时候,将进行数据保存!
主要介绍了IOS 中NSUserDefaults读取和写入自定义对象的实现方法的相关资料,希望通过本文大家能够理解掌握这部分内容,需要的朋友可以参考下
**********使用NSUserDefaults类实现在登陆界面记住用户账号密码的demo**********