Object-C中使用NSKeyedArchiver归档(将各种类型的对象存储到文件中)
来源:互联网 发布:天才 知乎 编辑:程序博客网 时间:2024/05/17 01:33
转:http://blog.csdn.net/enuola/article/details/7802371
将各种类型的对象存储到文件中,而不仅仅是字符串、数组和字典类型,有一种更灵活的方法。就是利用NSKeyedAarchiver类创建带键(keyed)的档案来完成。
Mac OS X从版本10.2开始支持带键的档案。在此之前,要使用NSArchiver类创建连续的(sequential)归档。连续的归档需要完全按照写入时的顺序读取归档中的数据。
在带键的归档中,每个归档字段都有一个名称。归档某个对象时,会为它提供一个名称,即键。从归档中检索该对象时,是根据这个键来检索的。这样可以按照任意的顺序将对象写入归档并进行检索。另外,如果向类添加了新的实例变量或删除了实例变量,程序也可以进行处理。
注意:iPhone SDK中没有提供NSArchiver。如果想在iPhone上使用归档功能,则必须使用NSKeyedArchiver。
代码示例如下:
- #import <Foundation/Foundation.h>
- int main(int argc, const char * argv[])
- {
- @autoreleasepool {
- //---------------使用NSKeyedArchiver归档(存储各种类型的对象数据)-------------
- //将字典数据写到文件glossary.archive中
- NSDictionary *glossary = [NSDictionary dictionaryWithObjectsAndKeys:
- @"A class defined so other class can inherit from it.",@"abstract class",
- @"To implement all the methods defined in a protocol.",@"adopt",
- @"Storing an object for later use.",@"archiving",
- nil
- ];
- [NSKeyedArchiver archiveRootObject:glossary toFile:@"glossary.archive"];
- //将文件glossary.archive中的数据读到字典对象并显示出来
- NSDictionary *readglossary = [NSKeyedUnarchiver unarchiveObjectWithFile:@"glossary.archive"];
- for(NSString *key in readglossary)
- NSLog(@"%@: %@",key,[readglossary objectForKey:key]);
- }
- return 0;
- }
其中,
- [NSKeyedArchiver archiveRootObject:glossary toFile:@"glossary.archive"];
之后,又通过
- NSDictionary *readglossary = [NSKeyedUnarchiver unarchiveObjectWithFile:@"glossary.archive"];
在显示结果之后,可以简单的通过枚举其内容来验证恢复是否成功。
0 0
- Object-C中使用NSKeyedArchiver归档(将各种类型的对象存储到文件中)
- Object-C中使用NSKeyedArchiver归档(将各种类型的对象存储到文件中)
- Object-C中自定义对象的归档
- <归档> object-c把数据写入到文件中
- ios-day12-04(ios开发中数据存储之NSKeyedArchiver归档(NSCoding)、普通对象如何归档、普通对象的子类如何归档)
- NSKeyedArchiver归档的使用
- NSKeyedArchiver/NSKeyedUnarchiver归档解归档的使用
- NSKeyedArchiver归档存储
- 各种类型文件在SQL Server中存储的解决方案
- 各种类型文件在SQL Server中存储的解决方案
- Objective-c中对象的归档
- iOS中 沙盒(sandbox)与归档(NSKeyedArchiver)
- 利用NSKeyedArchiver归档对象
- NSKeyedArchiver (对象归档)
- 将文件树归档到一个压缩的tar文件中
- Android将对象存储到SharedPreferences中
- Android将对象存储到SharedPreferences中
- ios数据存储之--对模型对象归档(NSKeyedArchiver、NSKeyedUnarchiver)
- Discuz防注入函数绕过方法分析及没用心的修复补丁
- 在MFC中实现“浏览文件夹”功能
- Set 遍历的三种方法。
- eclipse的使用和快捷键
- 希望早日做出自己的App
- Object-C中使用NSKeyedArchiver归档(将各种类型的对象存储到文件中)
- nodejs发送http请求时遇到404长时间未响应的解决方案
- [C++]图书管理 简版
- CF_479D Long Jumps(二分)
- Android 关于Activity的跳转和finish时切换页面动画实现
- 断点续传
- Android设置透明、半透明等效果
- Android启动Activity前确定Intent 能否解析
- xcode用archive生成ipa失败,只生成generic xcode archive的解决