您的位置:首页 > 移动开发 > IOS开发

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

2015-11-19 23:33 218 查看
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]命令直接同步到文件里,来避免数据的丢失。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: