码迷,mamicode.com
首页 > 移动开发 > 详细

iOS-自定义归档 保存数据

时间:2015-09-07 00:20:15      阅读:292      评论:0      收藏:0      [点我收藏+]

标签:

两个按钮

//
//  HMPerson.h
//  08-自定义对象归档
//
//  Created by yz on 14-8-29.
//  Copyright (c) 2014年 iThinker. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface HMPerson : NSObject<NSCoding>

@property (nonatomic, assign) int age;

@end



//
//  HMPerson.m
//  08-自定义对象归档
//
//  Created by yz on 14-8-29.
//  Copyright (c) 2014年 iThinker. All rights reserved.
//

#import "HMPerson.h"

@implementation HMPerson

// 在对象归档的时候调用
// 哪些属性需要归档
// 这些属性怎么归档
- (void)encodeWithCoder:(NSCoder *)aCoder
{
    [aCoder encodeInt:_age forKey:@"age"];
}

// 在对象解档的时候调用
// 哪些属性需要解档
// 这些属性怎么解档

- (id)initWithCoder:(NSCoder *)aDecoder
{
    // 当父类实现了NSCoding,就能调用 [super initWithCoder]
    if (self = [super init]) {
        _age = [aDecoder decodeIntForKey:@"age"];
    }
    return self;
}

@end
//
//  HMView.h
//  08-自定义对象归档
//
//  Created by yz on 14-8-29.
//  Copyright (c) 2014年 iThinker. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface HMView : UIView

@end

//
//  HMView.m
//  08-自定义对象归档
//
//  Created by yz on 14-8-29.
//  Copyright (c) 2014年 iThinker. All rights reserved.
//

#import "HMView.h"

@implementation HMView

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
    }
    return self;
}
// 解析XIB会调用
- (id)initWithCoder:(NSCoder *)aDecoder
{
    if (self = [super initWithCoder:aDecoder]) {
        
    }
    return self;
}

/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect
{
    // Drawing code
}
*/

@end
//
//  HMViewController.h
//  08-自定义对象归档
//
//  Created by yz on 14-8-29.
//  Copyright (c) 2014年 iThinker. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface HMViewController : UIViewController

@end



//
//  HMViewController.m
//  08-自定义对象归档
//
//  Created by yz on 14-8-29.
//  Copyright (c) 2014年 iThinker. All rights reserved.
//

#import "HMViewController.h"

#import "HMPerson.h"

@interface HMViewController ()

@end

@implementation HMViewController

- (IBAction)save:(id)sender {
    HMPerson *person = [HMPerson new];
    person.age = 18;
    
    NSString *docPath =  NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0];
    
    // 拼接文件路径
    NSString *filePath = [docPath stringByAppendingPathComponent:@"person.data"];
    
    [NSKeyedArchiver archiveRootObject:person toFile:filePath];
    

}
- (IBAction)read:(id)sender {
    NSString *docPath =  NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0];
    
    // 拼接文件路径
    NSString *filePath = [docPath stringByAppendingPathComponent:@"person.data"];
    
    HMPerson *p = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];
    NSLog(@"%d",p.age);
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

 

iOS-自定义归档 保存数据

标签:

原文地址:http://www.cnblogs.com/zhuyaguang/p/4787601.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!