zoukankan      html  css  js  c++  java
  • iOS-自定义归档 保存数据

    两个按钮

    //
    //  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
  • 相关阅读:
    c 编译异常 switch 之a label can only be part of a statement and a declaration is not a statement
    释码大华虹膜识别
    嵌入式开发之davinci--- 8168 总的roi 编码
    cv resource
    图像增强之DDE---基于红外图像的数字图像细节增强DDE
    音频处理之去噪算法---基于pcm和g711的音频16000hz、8bit去噪声算法
    嵌入式开发之davinci--- 8148/8168/8127 中的alsa音频pcm g711 和aac 音频格式
    嵌入式开发之davinci--- 8148/8168/8127 中的音频alsa 采集
    嵌入式开发之davinci--- 8148/8168/8127 中swms、Mosaic’s、display 显示pal 模式
    目标跟踪之klt---光流跟踪法
  • 原文地址:https://www.cnblogs.com/zhuyaguang/p/4787601.html
Copyright © 2011-2022 走看看