归档普通对象Demo示例程序源代码
- 源代码下载链接:
06-归档普通对象.zip
34.2 KB // MJPerson.h
- //
- // MJPerson.h
- // 06-归档普通对象
- //
- // Created by apple on 13-12-11.
- // Copyright (c) 2013年itcast. All rights reserved.
- //
- #import<Foundation/Foundation.h>
- @interfaceMJPerson : NSObject <NSCoding>
- @property(nonatomic,copy) NSString *name;
- @property(nonatomic,assign)intage;
- @property(nonatomic,assign)doubleheight;
- @end
// MJPerson.m
- //
- // MJPerson.m
- // 06-归档普通对象
- //
- // Created by apple on 13-12-11.
- // Copyright (c) 2013年itcast. All rights reserved.
- //
- #import"MJPerson.h"
- @implementationMJPerson
- #pragma mark将对象归档的时候会调用(将对象写入文件之前会调用)
- //在这个方法说清楚:
- // 1.哪些属性需要存储
- // 2.怎样存储这些属性
- - (void)encodeWithCoder:(NSCoder *)encoder
- {
- //将_name属性值进行编码(会将_name的值存进文件)
- [encoder encodeObject:_name forKey:@"name"];
- [encoder encodeInt:_age forKey:@"age"];
- [encoder encodeDouble:_height forKey:@"height"];
- NSLog(@"Person---encodeWithCoder-----");
- }
- #pragma mark当从文件中解析对象时调用
- //在这个方法说清楚:
- // 1.哪些属性需要解析(读取)
- // 2.怎样解析(读取)这些属性
- - (id)initWithCoder:(NSCoder *)decoder
- {
- NSLog(@"Person---initWithCoder-----");
- if(self = [super init]) {
- _name = [decoder decodeObjectForKey:@"name"];
- _age = [decoder decodeIntForKey:@"age"];
- _height = [decoder decodeDoubleForKey:@"height"];
- }
- return self;
- }
- @end
// MJStudent.h
- //
- // MJStudent.h
- // 06-归档普通对象
- //
- // Created by apple on 13-12-11.
- // Copyright (c) 2013年itcast. All rights reserved.
- //
- #import"MJPerson.h"
- @interfaceMJStudent : MJPerson
- @property(nonatomic,copy) NSString *no;
- @end
// MJStudent.m
- //
- // MJStudent.m
- // 06-归档普通对象
- //
- // Created by apple on 13-12-11.
- // Copyright (c) 2013年itcast. All rights reserved.
- //
- #import"MJStudent.h"
- @implementation MJStudent
- - (void)encodeWithCoder:(NSCoder *)encoder
- {
- [super encodeWithCoder:encoder];
- [encoder encodeObject:_no forKey:@"no"];
- NSLog(@"MJStudent---encodeWithCoder-----");
- }
- //本文永久链接,转载请注明出处:http://www.cnblogs.com/ChenYilong/p/3490624.html
- - (id)initWithCoder:(NSCoder *)decoder
- {
- if(self= [superinitWithCoder:decoder]) {
- NSLog(@"MJStudent---encodeWithCoder-----");
- _no = [decoder decodeObjectForKey:@"no"];
- }
- returnself;
- }
- @end
// MJViewController.h
- //
- // MJViewController.h
- // 06-归档普通对象
- //
- // Created by apple on 13-12-11.
- // Copyright (c) 2013年itcast. All rights reserved.
- //
- #import<UIKit/UIKit.h>
- @interfaceMJViewController : UIViewController
- - (IBAction)save;
- - (IBAction)read;
- @end
// MJViewController.m
- //
- // MJViewController.m
- // 06-归档普通对象
- //
- // Created by apple on 13-12-11.
- // Copyright (c) 2013年itcast. All rights reserved.
- //
- #import"MJViewController.h"
- #import"MJPerson.h"
- #import"MJStudent.h"
- @interfaceMJViewController ()
- @end
- @implementationMJViewController
- - (void)viewDidLoad
- {
- [superviewDidLoad];
- // Do any additional setup after loading the view, typically from a nib.
- }
- - (void)didReceiveMemoryWarning
- {
- [superdidReceiveMemoryWarning];
- // Dispose of any resources that can be recreated.
- }
- - (IBAction)save {
- // MJPerson *p = [[MJPerson alloc] init];
- // p.name = @"jack";
- // p.age = 10;
- // p.height = 1.55;
- //
- // NSString *path = @"/Users/apple/Desktop/person.data";
- // //归档
- // [NSKeyedArchiver archiveRootObject:p toFile:path];
- MJStudent *stu = [[MJStudent alloc] init];
- stu.name =@"rose";
- stu.age =20;
- stu.height =1.75;
- stu.no =@"110";
- NSString *path =@"/Users/apple/Desktop/person.data";
- [NSKeyedArchiver archiveRootObject:stu toFile:path];
- }
- - (IBAction)read {
- NSString *path =@"/Users/apple/Desktop/person.data";
- MJStudent *stu = [NSKeyedUnarchiver unarchiveObjectWithFile:path];
- NSLog(@"%@ - %d - %f- %@", stu.name, stu.age, stu.height, stu.no);
- ////本文永久链接,转载请注明出处:http://www.cnblogs.com/ChenYilong/p/3490624.html
- // //读档(反归档)
- // MJPerson *p = [NSKeyedUnarchiver unarchiveObjectWithFile:path];
- //
- // NSLog(@"%@ - %d - %f", p.name, p.age, p.height);
- }
- @end
归档普通对象Demo示例程序源代码的更多相关文章
- 03.WebView演练-iOS开发Demo(示例程序)源代码
技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong //转载请注明出处--本文永久链接:h ...
- iOS多线程
iOS开发Demo(示例程序)源代码
本系列所有开发文档翻译链接地址:iOS7开发-Apple苹果iPhone开发Xcode官方文档翻译PDF下载地址(2013年12月29日更新版) iOS程序源代码下载链接:01.大任务.zip22 ...
- 代理设计模式iOS开发Demo(示例程序)源代码
iOS程序源代码下载链接:03-代理设计模式.zip28.3 KB // main.m // // main.m // 03-代理设计模式 // // Created by apple ...
- 01-QQ 3-最终重构版
Demo示例程序源代码
源代码下载链接:01-QQ 3.zip292.5 KB // QQAppDelegate.h Map // // QQAppDelegate.h // 01-QQ // // Created ...
- 01-导航实例-QQ空间Demo示例程序源代码
01-导航实例-QQ空间.zip62.4 KB // MJLoginViewController.h Map // // MJLoginViewController.h // 01-导航实例-QQ ...
- 01-modal
Demo示例程序源代码
源代码下载链接:01-modal.zip37.8 KB // MJAppDelegate.h // // MJAppDelegate.h // 01-modal // // Created by ...
- 02-更改窗口的根控制器
Demo示例程序源代码
源代码下载链接:02-更改窗口的根控制器.zip18.0 KB // MJAppDelegate.h // // MJAppDelegate.h // 02-更改窗口的根控制器 // // ...
- 12.13记录//QQDemo示例程序源代码
笔记的完整版pdf文档下载地址: https://www.evernote.com/shard/s227/sh/ac692160-68c7-4149-83ea-0db5385e28b0 ...
- kafka_2.11-0.8.2.1+java 生产消费程序demo示例
Kafka学习8_kafka java 生产消费程序demo示例 kafka是吞吐量巨大的一个消息系统,它是用scala写的,和普通的消息的生产消费还有所不同,写了个demo程序供大家参考.kaf ...
随机推荐
- C#导出数据到CSV和EXCEL文件时数字文本被转义的解决方法
今天写C#导出datagrid数据到csv格式文件的时候,发现不管怎么尝试,凡是单元格里面全是数字的单元格,在用Excel打开的时候,都被自动转义成数据格式.数据查看极其不方便.最后google了一下 ...
- 形象的理解Strong和Weak
Strong Weak
- 圣思源Java视频36节练习源码分享(自己的190+行代码对比老师的39行代码)
题目: * 随机生成50个数字(整数),每个数字范围是[10,50],统计每个数字出现的次数 * 以及出现次数最多的数字与它的个数,最后将每个数字及其出现次数打印出来, * 如果某个数字出现次数为0, ...
- 项目总结(二)->一些常用的工具浅谈
程序员是否应该沉迷于一个编程的世界,为了磨砺自己的编程技能而两耳不闻窗外事,一心只为写代码:还是说要做到各有涉猎,全而不精.关于这点每个人心中都有一套自己的工作体系和方法体系. 我一直认为,程序员你首 ...
- Eclipse+APKTool动态调试APK
1. 所需工具 Eclipse. Apktool v2.0.6. 安卓SDK工具. 2. 重编译APK apktool d -d -o test test.apk 此时当前test目录下就是apkto ...
- 接口测试工具postman(三)添加断言
每个用例执行完成后,可以通过添加断言来判断返回结果是否正确,即表示用例执行是否成功. 官方说明文档:https://learning.getpostman.com/docs/postman/scrip ...
- 目标检测之Faster-RCNN的pytorch代码详解(模型准备篇)
十月一的假期转眼就结束了,这个假期带女朋友到处玩了玩,虽然经济仿佛要陷入危机,不过没关系,要是吃不上饭就看书,吃精神粮食也不错,哈哈!开个玩笑,是要收收心好好干活了,继续写Faster-RCNN的代码 ...
- MyEclipse主题设置
1. 打开网页: http://eclipsecolorthemes.org/ 选择自己喜欢的主题,并下载(下载epf文件) 我下载的是 Vibrant Ink 2. 下载完成后,打开myeclips ...
- JavaSE复习(四)File类与IO流
File类 构造方法 public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例. public File(String parent ...
- python基础之删除文件及删除目录的方法
下面来看一下python里面是如何删除一个文件及文件夹的~~ 1 2 3 4 5 6 7 8 #首先引入OS模块 import os #删除文件: os.remove() #删除空目录: os.r ...