ios 保存本地数据的方法

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];
时间: 2024-10-05 01:58:56

ios 保存本地数据的方法的相关文章

本地数据持久化方法

http://www.jianshu.com/p/86ea6da905cf http://www.cocoachina.com/industry/20130328/5908.html 1. 属性列表(plist)NSUserDefaults 属性列表是一种明文的轻量级存储方式,其存储格式有多种,最常规格式为XML格式.在我们创建一个新的项目的时候,Xcode会自动生成一个info.plist文件用来存储项目的部分系统设置.plist只能用数组(NSArray)或者字典(NSDictionary)

Memcached保存sesion数据的方法以及安全性问题

我们都知道,传统的session数据都储存到了文件里面,这样,在一定的程度上降低了速度. 在我们在实现问题之前,应该对php.ini进行配置如下: session.save_handler = memcache //指定使用Memcached保存数据 session.save_path = "tcp://127.0.0.1:11211" //指定session数据的的连接 有时候也可以用ini_set("键","键值");来设置php.ini操作

iOS保存model数据(自定义Model 可以存放到本地)

1.先创建类目类:继承于NSUserDefaults 2其次前提:保存的model要实现NSCoding 3.在自定义的类目实现这两个方法 -(void)setCustomObj:(id)obj forKey:(NSString *)key; -(id)customObjForKey:(NSString *)key; 在自定义的类目中实现这两个方法 -(void)setCustomObj:(id)obj forKey:(NSString *)key { if ([obj respondsToSe

IOS开发中数据持久化的几种方法--NSUserDefaults

IOS开发中数据持久化的几种方法--NSUserDefaults IOS 开发中,经常会遇到需要把一些数据保存在本地的情况,那么这个时候我们有以下几种可以选择的方案: 一.使用NSUserDefault是最简单直接的一个办法: 1)保存数据: 1 // 实例化一个NSUserDefaults单例对象 2 NSUserDefaults *user = [NSUserDefaults standardUserDefaults]; 3 // 把一个数组array保存在key为allContact的键值

iOS本地数据存取,这里就够了

iOS本地数据存取,看这里就够了 应用沙盒 每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离.应用必须待在自己的沙盒里,其他应用不能访问该沙盒 应用沙盒的文件系统目录,如下图所示(假设应用的名称叫Layer) 应用沙盒的文件系统目录 应用沙盒结构分析 应用程序包:(上图中的Layer)包含了所有的资源文件和可执行文件 Documents:保存应用运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录.例如,游戏应用可将游戏存档保存在该目录 tmp:保存应

IOS NSUserDefaults-轻量级本地数据存储

IOS NSUserDefaults-轻量级本地数据存储 IOS 针对用户数据持久化处理提供了多种处理方式:NSUserDefaults.plist 以及 sqlite3 数据库 都是很不错的选择! NSUserDefaults 是一种轻量级本地数据存储,操作方便,但仅支持Bool.Float.NSInteger.Object.Double.Url 这六种数据类型的存储 NSUserDefaults 提供了添加.读取以及移除等方法,供开发者调用,具体示例如下: GNSUserDefaults.h

ios保存数据方式

摘自:http://blog.csdn.net/tianyitianyi1/article/details/7713103. 在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题.将数据保存到本地,能够让程序的运行更加流畅,不会出现让人厌恶的菊花形状,使得用户体验更好.下面介绍一下数据保存的方式: 1.NSKeyedArchiver:采用归档的形式来保存数据,该数据对象需要遵守NSCoding协议,并且该对象对应的类必须提供encodeWithCoder:和initWithCoder:方

ios本地数据存储

在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题.将数据保存到本地,能够让程序的运行更加流畅,不会出现让人厌恶的菊花形状,使得用户体验更好.下面介绍一下数据保存的方式: 1.NSKeyedArchiver:采用归档的形式来保存数据,该数据对象需要遵守NSCoding协议,并且该对象对应的类必须提供encodeWithCoder:和initWithCoder:方法.前一个方法告诉系统怎么对对象进行编码,而后一个方法则是告诉系统怎么对对象进行解码.例如对Possession对象归档保存.

iOS保存数据的4种方式

在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题.将数据保存到本地,能够让程序的运行更加流畅,不会出现让人厌恶的菊花形状,使得用户体验更好.下面介绍一下数据保存的方式: 1.NSKeyedArchiver:采用归档的形式来保存数据,该数据对象需要遵守NSCoding协议,并且该对象对应的类必须提供encodeWithCoder:和initWithCoder:方法.前一个方法告诉系统怎么对对象进行编码,而后一个方法则是告诉系统怎么对对象进行解码.例如对Possession对象归档保存.