iphone 文件读写
来源:互联网 发布:郑州专业seo服务公司 编辑:程序博客网 时间:2024/05/22 17:00
第十五章:文件加载与保存
Cocoa提供了Core Data,能够在后台处理所有文件内容,但是本章讨论的是Cocoa提供的两个通用的文件处理类:属性列表和对象编码
15.1 属性列表
有一类名为属性列表的对象,常简写为plist
属性列表类包括:NSArray, NSDictionary, NSString, NSNumber, NSDate,NSData以及他们的变体
15.1.1 NSDate
NSDate是用于处理时间和日期的基础类
[NSDate date]获得当前日期
dateWithTimeIntervalSinceNow,接受一个NSTimeInterval参数,通过制定时间偏移量获得新时间。正值表示将来,负值表示过去
15.1.2 NSData
NSData包装了大量字节,可以获得数据的长度和指向字节起始位置的指针
用dataWithBytes:length:方法获得
length方法给出字节数
bytes方法给出指向字节起始位置的指针
NSData不能改变,创建后就只能使用而不能改变,NSMutableData可以改变
15.1.3 写入和读取属性列表
如何使用属性列表和文件关联呢:
集合属性列表类具有:writeToFile:atomically:方法,用于将属性列表写入文件
NSString、NSData也具有:writeToFile:atomically:方法,但只写入字符串或数据块
注意:atomically参数是BOOL型,用于说明保存过程中是否使用临时文件,会占用双倍空间,但除非文件非常大,否则应该使用YES,以防破坏原始文件
通过arrayWithContentsofFile:方法可以将文件内容读入到数组中
writeToFile:atomically:的缺点是,不会返回错误信息,如果不能加载,只能从方法中得到nil指针
15.2 编码对象
Cocoa具备一种机制,将对象转换为某种格式保存到磁盘中,当读取这些数据块到内存后,还能基于保存的对象创建新的对象。这个过程称为编码和解码,或称为序列化和反序列化
例如:使用Interface Buider时,从库中拖动对象,这些对象被保存到nib文件中,换言之,对象被序列化并保存到磁盘中。程序运行时,会将nib文件加载到内存中,串行化对象
通过实现NSCoding协议,可以使自己的对象实现相同的功能
@protocal NSCoding
-(void) encodeWithCoder:(NSCoder *) aCoder;
-(id) initWithCoder:(NSCoder *) aDecoder;
NSCoder是一个抽象类,我们只用它的子类NSKeyedArchiver和NSKeyedUnarchiver
encodeObject:forkey方法编码,encodeXXX:forkey:
decodeObject:forkey方法解码,decodeXXX:forkey;
注意:initWithCoder需要调用父类init,如果父类采用NSCoding协议,则调用initWithCoder,否则调用init即可
http://hi.baidu.com/lgj628/blog/item/93d9ae89140614a90f2444e2.html
- iPhone 文件读写
- iPhone 文件读写
- iphone读写plist文件
- 【转】 iPhone 文件读写
- iphone 文件读写
- iphone 读写文件
- iPhone 文件读写
- Iphone文件读写操作
- iPhone文件读写操作
- iPhone文件读写
- Iphone文件读写操作
- iPhone 文件读写操作
- iPhone 文件读写操作
- iphone开发 文件的读写
- iphone开发文件的读写
- iPhone文件读写系统操作
- iphone实现文件的读写操作
- 在iPhone上读写zip文件
- sql执行顺序
- logback 常用配置详解(二) <appender>
- 整理下思路(7)
- 图片资源
- 备忘录
- iphone 文件读写
- 应该怎样读书,应该读什么书. 我阅读的经历与心得
- logback logback.xml常用配置详解(三) <filter>
- COLORREF
- 自定义progressBar样式
- jboss下配置log4j.xml
- Codeforces Beta Round #85 div 2
- ZooKeeper Server/Client Session 设计及代码分析
- IT业魂在何方