iOS ViewController之间传值方法二(利用NSUserDefaults)

原创 2015年11月19日 23:33:02

2.利用NSUserDefaults在两个ViewController之间传值

iOS中利用NSUserDefaults在两个或多个界面之间传值。其中NSUserDefaults支持的数据类型有:NSNumber(NSInteger,Float,Double),NSString,NSDate,NSArray,NSDictionary,BooL.

以NSArray为例子,

在A界面

    //A界面利用NSUserDefault方式传一个数组

    NSArray *myArr = [[NSArrayalloc]initWithObjects:@"1",@"2",@"3",nil];

    //赋值

    [[NSUserDefaultsstandardUserDefaults]setObject:myArrforKey:@"getArr"];


  在B界面

    //B界面获取arr

    NSArray *newArr = [[NSArrayalloc]init];

    //取值

    newArr = [[NSUserDefaultsstandardUserDefaults]objectForKey:@"getArr"];

    NSLog(@"%@----------",newArr);

-----最后关于NSUserDefaults的存储?

 其实它存储在应用程序内置的一个plist文件里,这个可以根据路径看到。

 比如说这个是你的程序沙盒位置
   /UsersLibrary/Application Support/iPhoneSimulator/4.1/Applicati*****/29788E40-AF47-45A0-8E92-        3AC0F501B7F4/,(这个是应用程序对应在mac上的位置)
   这个下面有/Library/Prefereces,里面有个plist文件,存储的就是你的userDefaults
   想要删掉的话,用removeObjectForKey或者删掉沙盒,也就是你的应用程序然后重新安装。
--------怎样移除NSUserDefaults?
[[NSUserDefaults standardUserDefaults]removeObjectForKey:@"getArr"]; 
----------同步
[[NSUserDefaults standardUserDefaults]synchronize];同步,
作用:如果程序意外退出, NSUserDefaultsstandardUserDefaults数据不会被系统写入到该文件,所以,要使用  [[NSUserDefaultsstandardUserDefaults] synchronize]命令直接同步到文件里,来避免数据的丢失。


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

iOS 不同界面(ViewController)之间传值

今天遇到一个问题:如何在多个viewController 之间进行传值,我有A、B、C三个 view,三个 view 均在同一 Navigation Controller 容器中,关系如下图: ...

【ios】2个viewController之间传值(segue方式)

目前我了解的viewController之间传值有2种方式,一种是segue方式,一种是delegate方式;本文只讲segue方式。 先定义viewController 1简称为A,viewC...

iOS编程——OC viewController 传值常用方法Delegate和Block的使用

写了个例子,简单介绍了下Delegate和Block的使用,注意点都在注释里,直接上代码了: 1.FirstViewController.h: #import @interface First...

IOS学习笔记31—两个ViewController间传值(二)

在上一篇 两个ViewController间传值(一)中说明了如何从A传值到B,这次要讲的是如何从A进入B,在B输入值后回传给A,这类似于Android中的利用Activity的onActivityR...

UIStoryBoard中viewController之间的跳转与传值

UIStoryBoard中viewController之间的跳转与segue在使用storyboard中,三种segue类型:push、modal、custom。大多数情况会在UINavgationC...

ViewController之间传值

1.属性/方法两个页面A,B;A转到B页面//在A页面,跳转时 BViewController *bPage = [[BViewController alloc] init]; //B...

控制器之间的数据传递——NSUserDefaults传值

NSUserDefaults传值 使用偏好设置(NSUserDefaults)传值实质是把数据持久化于沙盒,另一个控制器在从沙盒读取对应的文件获取数据,它是一种以文件进行传值的方式。 一. 实现步...

IOS学习笔记30—两个ViewController间传值(一)

IOS中,在两个ViewController之间传值有多种方式,这里学习其中一种,利用临时变量在两个ViewController之间传值,这可能不是最好的传值方式,但是也是一种选择。 首先看看工程结...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS ViewController之间传值方法二(利用NSUserDefaults)
举报原因:
原因补充:

(最多只允许输入30个字)