ios 保存本地数据的方法

摘要:
NSUserDefaults的使用创建用户默认值有多种方法。创建用户默认值最简单、最快的方法是NSUserDefaults*accountDefaults=[NSUserDefaultsstandardUserDefaults];将数据添加到用户默认值:[accountDefaultssetObject:nameField.textforKey:UserDefaultNameKey];您还可以使用相应的方法[accountDefaultssetBool:YESForKey:UserDefaultBoolKey]添加基本数据类型,如int、float、bool等;从用户默认值获取数据:[accountDefaultsobjectForKey:NCUserDefaultNameKey][accountDefaultsboolForKey:UserDefaultBoolKey];重要提示:NSUserDefaults非常容易使用。您不需要在程序中设置NSUserDefaults的全局变量。如果需要使用NSUserDefaults的数据,请创建一个NSUserDefault对象,然后进行读取或写入。3.如果您通过按下主页按钮终止应用程序,则UserDefaultswill将被保存。
1。
NSString *path = [[NSBundle mainBundle] pathForResource:@"文件名" ofType:@"plist"];
// 文件数据类型是array
NSArray *array=[NSArray arrayWithContentsOfFile:path];
//文件数据类型是*dictionary
NSDictionary *dictionary = [NSDictionary dictionaryWithContentsOfFile:path];
 
 
//1. 创建一个plist文件
    NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES); 
    NSString *path=[paths    objectAtIndex:0];
    NSLog(@"path = %@",path);
    NSString *filename=[path stringByAppendingPathComponent:@"test.plist"];    
    NSFileManager* fm = [NSFileManager defaultManager];
    [fm createFileAtPath:filename contents:nil attributes:nil];        
    //NSDictionary* dic = [NSDictionary dictionaryWithContentsOfFile:plistPath];
    
    //创建一个dic,写到plist文件里
    NSDictionary* dic = [NSDictionary dictionaryWithObjectsAndKeys:@"sina",@"1",@"163",@"2",nil];
    [dic writeToFile:filename atomically:YES];
    
    //读文件
    NSDictionary* dic2 = [NSDictionary dictionaryWithContentsOfFile:filename];
    NSLog(@"dic is:%@",dic2);
 
 

2。NSUserDefaults的使用


创建一个user defaults方法有多个,最简单得快速创建方法:
   NSUserDefaults *accountDefaults = [NSUserDefaults standardUserDefaults];

添加数据到 user defaults:
   [accountDefaults setObject:nameField.text forKey:UserDefaultNameKey];
也可以添加基本数据类型int, float, bool等,有相应得方法

   [accountDefaults setBool:YES forKey:UserDefaultBoolKey];

从user defaults中获取数据:

   [accountDefaults objectForKey:NCUserDefaultNameKey]

  
 [accountDefaults boolForKey: UserDefaultBoolKey];

要点: NSUserDefaults非常好用,并不需要用户在程序中设置NSUserDefaults的全局变量,需要在哪里使用NSUserDefaults的数据,那么就在哪里创建一个NSUserDefaults对象,然后进行读或者写操作。
     针对同一个关键字对应的对象或者数据,可以对它进行重写,重写之后关键字就对应新的对象或者数据,旧的对象或者数据会被自动清理。
 
3 关于NSUserDefaults保存不了数据的问题If you terminate your app by pressing the home button (in the Simulator or on the device), your User Defaults will get saved.

如果你按HOME键终止你的应用(真机或者模拟器上),你的值是会被保存的。

If you terminate your app by pressing "Stop" in Xcode (in the Simulator or on the device), your User Defaults might get saved, but there's a good chance they won't. NSUserDefaults persists any changes periodically, and if you terminate the process before they've been persisted, they'll be gone. You can force the save by calling:

[[NSUserDefaults standardUserDefaults] synchronize];
 
如果你在XCODE中,终止你的应用(在模拟器或者真机上),你的值有时候(terminate the process before they've been persisted(不知道是个什么鬼))不会被保存。但是你可以使用以下代码强制保存:
[[NSUserDefaults standardUserDefaults] synchronize];

免责声明:文章转载自《ios 保存本地数据的方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇将DataTable转换成Json格式PostgreSQL数据库模糊查询区分大小写(like与ilike用法)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

单一职责原则

单一职责原则 单一职责原则(Simple responsibility pinciple SRP) 就一个类而言,应该仅有一个引起它变化的原因,如果你能想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责。应该把多于的指责分离出去,分别再创建一些类来完成每一个职责。 单一职责原则是软件设计7大原则之一,其核心思想就是最大限度的提升代码的可复用性...

iOS 开发之照片框架详解之二 —— PhotoKit 详解(下)

本文链接:http://kayosite.com/ios-development-and-detail-of-photo-framework-part-three.html 这里接着前文《iOS 开发之照片框架详解之二 —— PhotoKit 详解(上)》,主要是干货环节,列举了如何基于 PhotoKit 与 AlAssetLibrary 封装出通用的方法...

iOS:quartz2D绘图小项目(涂鸦画板)

介绍:学了quartz2D的绘图知识后,我根据它的一些功能制作了一个小项目:涂鸦画板。 功能:绘制各种图形,还可以选取相册上的照片做涂鸦,然后保存到相册中。其中,还包括功能有:颜色的选取、线宽的选取、橡皮擦除、撤销上一次绘制痕迹、清除所有痕迹。 用到的自定义控件:工具栏控件(UIToolBar)、工具栏上的按钮控件(UIBarButtonItem)、警告框...

NSDictionary读取数据类型异常问题.

起因:做网络交互时,经常会使用JSON作为数据的承载体,本来是件好事,但是用多了,发现iOS侧偶尔会出现异常,几经比较发现是服务器给的数据有问题,该给INT的给按照STR给了,服务器能做动态更新,可客户端不行啊,怎么办?NSDictionary读到的是id类型,如果是数字,需要再转换下才可以,出问题就在这里.那解决思路就在这里,在这里增加判断实现用到了以下...

IOS ——OC—— NSDictionary的使用总结

键与值一一对应,键不能重复; 值可以重复; 1.NSDictionary的创建:(字典的内容是无序的,不能进行排序)  NSDictionary *dic = [NSDictionary dictionary];//创建一个空字典                 NSDictionary *dic1 = [NSDictionary dictionaryW...

iOS- 微信支付 (服务器调起支付 )以及回调不成功的原因 不看后悔

写的不错,给留个言哈... 一. 支付准备工作 1. 微信相关准备工作 (1) 向微信官方开通支付功能. 这个不是前端的工作. (2) 导入官方下载的微信支付SDK包. 我用的是微信开放平台下载的SDK 1.6.2 (3) 导入必要的库文件 SystemConfiguration.framework, libz.dylib, libsqlite3.0.d...