IOS 关于 NSUserDefault

转载

并不是所有的东西都能往里放的。NSUserDefaults只支持: NSString, NSNumber, NSDate, NSArray, NSDictionary.

NSUserDefaults的方法中用来记录一下永久保留的数据非常方便,不需要读写文件,而是保留到一个NSDictionary字典里,由系统保存到文件里,系统会保存到该应用下的/Library/Preferences/gongcheng.plist文件中。
需要注意的是如果程序意外退出,NSUserDefaults standardUserDefaults数据不会被系统写入到该文件,不过可以使用[[NSUserDefaults standardUserDefaults] synchronize]调用synchronize函数将立即更新这些默认值,而不是等待程序终止,避免数据的丢失

如果把一个自定义的类存到一个NSArray里,然后再存到NSUserDefaults里也是不能成功的。不信可以试试,如果你成功的请告诉我。

那怎么办呢?

解决方法参加blog:http://blog.csdn.net/chyroger/article/details/5785297

时间: 2024-11-14 20:32:51

IOS 关于 NSUserDefault的相关文章

iOS 之 NSUserDefault

1. 概念 NSUserDefaults是一种特殊的property list.是系统封装的属性列表,方便记录简单的数据. 2. 使用说明 2.1. 创建NSUserDefaults NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 2.2. 存数据 //存数据 [defaults setObject:@"jereh" forKey:@"name"]; //将缓存中的数据存放在磁盘上

android小功能实现之简单数据持久化保存(SharedPreferences)

为了保存一些简单的配置,类似iOS的NSUserDefault和cocos2dx的CCUserDefault,Android提供了SharedPreferences. 一 布局 先看效果图: 打开main.xml修改内容如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/andr

iOS页面间传值的方式(Delegate/NSNotification/Block/NSUserDefault/单例)

iOS页面间传值的方式(NSUserDefault/Delegate/NSNotification/Block/单例) 实现了以下iOS页面间传值:1.委托delegate方式:2.通知notification方式:3.block方式:4.UserDefault或者文件方式:5.单例模式方式:6.通过设置属性,实现页面间传值 在iOS开发中,我们经常会遇到页面间跳转传值的问题,现归纳总结一下: 情况1:A页面跳转到B页面 方法: 在B页面的控制器中,编写对应的属性,在A页面跳转到B页面的地方,给

iOS页面间传值的五种方式总结(Delegate/NSNotification/Block/NSUserDefault/单例)

iOS页面间传值的方式(Delegate/NSNotification/Block/NSUserDefault/单例) iOS页面间传值的方式(NSUserDefault/Delegate/NSNotification/Block/单例) 实现了以下iOS页面间传值:1.委托delegate方式:2.通知notification方式:3.block方式:4.UserDefault或者文件方式:5.单例模式方式:6.通过设置属性,实现页面间传值 在iOS开发中,我们经常会遇到页面间跳转传值的问题,

iOS开发数据持久化技术01——NSUserDefault介绍

有疑问的请加qq交流群:390438081 我的QQ:604886384(注明来意) 微信:niuting823 首先说下什么是数据持久化技术 NSString *str = @"hello world"; ->内存 实际上就是将数据存储到硬盘上,针对于iOS应用程序是存储到沙盒中. . NSUserDefault介绍 1 是系统提供的自定义的类,可以随时在需要使用的地方声明对象,并随时需要的时候取出对象 2 支持的对象类型:NSString, NSNumber, NSData,

iOS页面间传值的方式(NSUserDefault/Delegate/NSNotification/Block/单例)

实现了以下iOS页面间传值:1.委托delegate方式:2.通知notification方式:3.block方式:4.UserDefault或者文件方式:5.单例模式方式:6.通过设置属性,实现页面间传值 在iOS开发中,我们经常会遇到页面间跳转传值的问题,现归纳总结一下: 情况1:A页面跳转到B页面 方法: 在B页面的控制器中,编写对应的属性,在A页面跳转到B页面的地方,给B的属性赋值即可 //SecondViewController.h @property(nonatomic) NSInt

iOS页面间传值的方式 (Delegate/NSNotification/Block/NSUserDefault/单例)

iOS页面间传值的方式(Delegate/NSNotification/Block/NSUserDefault/单例) iOS页面间传值的方式(NSUserDefault/Delegate/NSNotification/Block/单例) 实现了以下iOS页面间传值: 1.委托delegate方式:2.通知notification方式:3.block方式:4.UserDefault或者文件方式:5.单例模式方式:6.通过设置属性. 在iOS开发中,我们经常会遇到页面间跳转传值的问题,现归纳总结一

iOS开发——数据持久化Swift篇&amp;(一)NSUserDefault

NSUserDefault 1 2 //******************** 5.1 NSUserDefault和对象归档 3 func useNSUserDefault() 4 { 5 //通过单利来创建一个NSUserDefaults对象,全局变量NSUserDefault,可在整个项目传递变量 6 var userDefault:NSUserDefaults = NSUserDefaults.standardUserDefaults() 7 8 //通过init方法创建 9 var u

IOS问题汇总:2015-1-9 NSUserDefault (转)

NSUserDefault NSUserDefaults可以存取一些短小的信息. 比如存入再读出一个字符串到NSUserDefaults: [cpp] view plaincopyNSString *string = [NSString stringWithString @“hahaha”]; NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; [ud setObject:string forKey:@“myKey”]; NSS