转载请注明此处:http://blog.csdn.net/jimney_ljj/archive/2011/02/15/6185480.aspx
在ios游戏和应用的开发过程中,我们需要将一些数据保存到文件中,记录当前的一些状态或者数据信息。在cocoatouch库中,NSData、NSString、NSArray及NSDictory有相应的读写方法。当NSArray、NSDictory存放的是NSString或者NSData对象数据,那么可以直接使用NSArray、NSDictory的writeToFile方法,如果NSArray、NSDictory存放的自定类对象,就不可以直接使用此方法了。
cocoatouch库为我们提供的实现存储自定义对象的方式,通过在自定义类中实现NSCoding代理方法,使用时通过NSKeyedArchiver 类方法可将自定义类对象转化成NSData对象,保存到数组中然后一起写入文件。
首先在在自定义类中实现NSCoding的代理方法,对类成员进行编码与解码,代码简要实现如下:
使用时通过NSKeyedArchiver 进行对象数据转换,实现过程如下:
a.写入文件过程:
1、将自定义对象转化成NSData对象,添加到NSArray中
2、NSArray通过writeToFile方法写入到文件中
b.读取文件过程:
1、将文件中的数据读入到NSArray中
2、将NSData对象一次转化为自定义对象
总结
通过直接保存程序中的对象信息,更加方便我们在开发过程中进行数据存取。很多时候直接保存文本信息,需要我们额外的数据解析,借助于这个方法得实现,直接将对象数据信息保存为xml格式的信息文件,存取更加灵活。