iOS开发中几种常见的存储方式
1、archive 归档
数据的保存
1: let result = NSKeyedArchiver.archiveRootObject(contacts, toFile: path as String)2: println("保存结果\(result)").csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
数据的读取:
1: var t:[Contact]?2: var any:AnyObject? = NSKeyedUnarchiver.unarchiveObjectWithFile(path as String)3: if any == nil {4: t = [Contact]()5: }else{6: println("读取成功")7: t = any as? [Contact]8: }.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
需要在模型中实现init With Coder方法 和 encodewithCoder方法
2、User Default
NSUserDefaults类提供了一个与默认系统进行交互的编程接口。NSUserDefaults对象是用来保存,恢复应用程序相关的偏好设置,配置数据等等。默认系统允许应用程序自定义它的行为去迎合用户的喜好。你可以在程序运行的时候从用户默认的数据库中读取程序的设置。同时NSUserDefaults的缓存避免了在每次读取数据时候都打开用户默认数据库的操作。可以通过调用synchronize方法来使内存中的缓存与用户默认系统进行同步。
NSUserDefaults类提供了非常方便的方法来获取常用的类型,例如floats,doubles,intergers,Booleans,URLs。所以一个NSUserDefaults的对象必须是属性表,这也就是说我们可以存储NSData,NSString,NSNUmber,NSDate,NSArray,NSDictionary这些实例。如果你想存储其他类型的对象,你要将其归档并创建一个NSData来实现存储。
从NSUserDefaults返回的值是不可改变的,即便是你在存储的时候使用的是可变的值。例如你使用mutable string做为“MyStringDefault”的值,当你做使用stringForKey:方法获取的值,这个值仍然是不可变的。
NSUserDefaults是单例,同时也是线程安全的
3、plist 存储
1: [dataDic setValue:eachDArray forKey:"key"];
2: [dataDic writeToFile:filename atomically:YES];
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
Ref
http://blog.csdn.net/world_liu/article/details/9177485
最新文章
- HDU 1556 Color the ball(线段树区间更新)
- 批量插入数据(基于Mybatis的实现-Oracle)
- JavaWeb学习笔记——开发动态WEB资源(二)HelloWord
- Java设计模式-责任链模式(Chain of Responsibility)
- CSS效果
- aspnetpager+repeater+oracle实现分页功能
- [转载] extern ";C";的用法解析
- 使用SmsManager服务群发短信
- Mac上好用的视频播放器有哪些?
- Django 无名参数与有名参数
- servlet两种配置方法详解
- 用Python抓取网页并解析
- php如何实现原址排序数组使奇数位于偶数前面(代码)
- 【mmall】mybatis三剑客
- Java集合:ConcurrentHashMap原理分析
- vbox中安装mac系统
- Centos搭建Seafile个人网盘
- python range用法
- ArraySort--冒泡排序、选择排序、插入排序工具类demo
- CharSequence与String的区别