person.h头文件内容

  1. #import <Foundation/Foundation.h>
  2. @interface Person : NSObject
  3. {
  4. NSString *name;
  5. char sex;
  6. int age;
  7. }
  8. @property(nonatomic,copy) NSString *name;
  9. @property char sex;
  10. @property int age;
  11. @end

person.m实现文件

  1. #import "Person.h"
  1. @implementation Person
  2. @synthesize name,age,gender;
  3. -(void)encodeWithCoder:(NSCoder *)aCoder
  4. {
  5. [aCoder encodeObject:name forKey:@"stuName"];
  6. NSNumber *age1 = [NSNumber numberWithInt:age];
  7. [aCoder encodeObject:age1 forKey:@"stuAge"];
  8. NSNumber *gender1 = [NSNumber numberWithChar:gender];
  9. [aCoder encodeObject:gender1 forKey:@"stuGender"];
  10. }
  11. -(id)initWithCoder:(NSCoder *)dCoder
  12. {
  13. name = [dCoder decodeObjectForKey:@"stuName"];
  14. age = [[dCoder decodeObjectForKey:@"stuAge"]intValue];
  15. gender = [[dCoder decodeObjectForKey:@"stuGender"]charValue];
  16. return self;
  17. }
  18. @end

main.m测试文件

  1. #import <Foundation/Foundation.h>
  2. #import "Person.h"
  3. int main(int argc, const char * argv[]) {
  4. @autoreleasepool {
  5. Person *p1 = [[Person alloc]init];
  6. p1.name = @"zhangsan";
  7. p1.age = 22;
  8. p1.gender = 'F';
  9. Person *p2 = [Person new];
  10. p2.name = @"lisi";
  11. p2.age = 23;
  12. p2.gender = 'M';
  13. NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithCapacity:30];
  14. [dic setObject:p1 forKey:@"person1"];
  15. [dic setObject:p2 forKey:@"person2"];
  16. //把字典内容存入到文件中
  17. if ([NSKeyedArchiver archiveRootObject:dic toFile:@"/Users/mac/Desktop/a.plist"] ) {
  18. NSLog(@"chenggong");
  19. }
  20. NSMutableDictionary *dic2 = [NSMutableDictionary dictionaryWithCapacity:30];
  21. //从文件中读取内容放入到字典中
  22. dic2 = [NSKeyedUnarchiver unarchiveObjectWithFile:@"/Users/mac/Desktop/a.plist"];
  23. NSEnumerator *enumerator = [dic2 objectEnumerator];
  24. id obj;
  25. //遍历字典内容
  26. while (obj = [enumerator nextObject]) {
  27. NSLog(@"name = %@,age = %i,gender = %c",[obj name],[obj age],[obj gender]);
  28. }
  29. }
  30. return 0;
  31. }

NSCoder的更多相关文章

  1. iOS 数据序列化,NSCoding, NSCoder

    iOS可以利用NSKeyedArchiver类将对象序列化成NSData存储在磁盘上,但前提是该对象所属的类必须遵从NSCoding协议. NSCoding协议包含两个方法,要序列化的类必须实现它们 ...

  2. iOS开发——数据持久化&本地数据的存储(使用NSCoder将对象保存到.plist文件)

    本地数据的存储(使用NSCoder将对象保存到.plist文件)   下面通过一个例子将联系人数据保存到沙盒的“documents”目录中.(联系人是一个数组集合,内部为自定义对象).   功能如下: ...

  3. iOS开发——OC篇&协议篇/NSCoder/NSCoding/NSCoping

    协议篇/NSCoder/NSCoding/NSCoping 协议声明类需要实现的的方法,为不同的类提供公用方法,一个类可以有多个协议,但只能有一个父类,即单继承.它类似java中的接口. 正式协议(f ...

  4. Swift - 本地数据的保存与加载(使用NSCoder将对象保存到.plist文件)

    下面通过一个例子将联系人数据保存到沙盒的“documents”目录中.(联系人是一个数组集合,内部为自定义对象). 功能如下: 1,点击“保存”将联系人存入userList.plist文件中 2,点击 ...

  5. 加载xib文件,如果想在初始化的时候就添加点东西就重载-(id)initWithCoder:(NSCoder *)aDecoder

    - (id)initWithCoder:(NSCoder *)aDecoder { self = [super initWithCoder:aDecoder]; if (self) { self.cl ...

  6. iOS开发-数据存储NSCoder

    软件中永远绕不开的一个问题就是数据存储的问题,PC的时候一般都是选择在数据库中存储,iOS如果是和后端配合的话,那么不需要考虑数据存储的这个问题,上次写了一下plist的存储,不过数据都是存储一些简单 ...

  7. NSKeyedArchiver : NSCoder

    NSKeyedArchiver : NSCoder @interface NSData : NSObject <NSCopying, NSMutableCopying, NSSecureCodi ...

  8. 【原】AFNetworking源码阅读(四)

    [原]AFNetworking源码阅读(四) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 上一篇还遗留了很多问题,包括AFURLSessionManagerTaskDe ...

  9. MCDownloadManager ios文件下载管理器

    我们用AFNetworking小试牛刀,写一个简单的下载器来演示功能. 前言 为什么AFNetworking能够成为顶级框架?我们究竟该如何领悟它的精髓所在?这都是很难的问题.安全,高效,流畅,这3个 ...

随机推荐

  1. Java Web -- Servlet(1) 必备知识

    学习Java WEB开发必备的基本概念: 1.WEB 本意是蜘蛛网和网的意思.在网页设计中我们称为网页的意思. 现广泛译作网络.互联网等技术领域.表现为三种形式,即超文本(hypertext).超媒体 ...

  2. FTP(File Transfer Protocol)是什么?

    文件传输协议 FTP(File Transfer Protocol),是文件传输协议的简称.用于Internet上的控制文件的双向传输.同时,它也是一个应用程序(Application).用户可以通过 ...

  3. python的OS库和正则表达式库

    摘自:http://blog.chinaunix.net/uid-16360955-id-3351990.html 作留存学习 1.常用内置函数:(不用import就可以直接使用) help(obj) ...

  4. EasyUI怎么利用onBeforeRender事件

    onBeforeRender事件是view的属性,该事件发生在把ajax请求到的数据填充到表格内容中之前 将此段代码附加在DataGrid初始化后执行,即可完成在DataGrid渲染之前进行操作 // ...

  5. C++编译过程与内存空间

     为什么须要知道C/C++的内存布局和在哪能够能够找到想要的数据?知道内存布局对调试程序很有帮助,能够知道程序运行时,究竟做了什么,有助于写出干净的代码.本文的主要内容例如以下: 源文件转换为可运 ...

  6. HttpWatch使用教程

    一 概述: HttpWatch强大的网页数据分析工具.集成在Internet Explorer工具栏.包括网页摘要.Cookies管理.缓存管理.消息头发送/接受.字符查询.POST 数据和目录管理功 ...

  7. fzu2181(点的双连通分量+求奇环)

    求出每个点双连通分量,如果在一个点双连通分量中有奇环,则这个分量每个点都在一个奇环中.  关键是要知道怎么求点双连通分量以及点双连通的性质. fzu2181 http://acm.fzu.edu.cn ...

  8. IIPP迷你项目(二)"Guess the Number!"

    本来这个程序是早就编完了的,一直没时间发布博客.时至今日已时隔多天,也算是复习一下事件驱动型编程的过程吧. 1 事件驱动型编程 本质上这次的作业是披着猜数字皮的图形化界面编程,好在 simplegui ...

  9. GridView中给DropDownList动态绑定数据,及选择列表值后自动更新数据库

    protected void sgvFile1_RowDataBound(object sender, GridViewRowEventArgs e) { DropDownList ddlAM = ( ...

  10. 学习即语言的学习 “表示” “presentation”

    w 龚升