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
  • 相关阅读:
    如何实现一个php框架系列文章【3】支持psr4的自动加载类
    JavaScript中valueOf函数与toString方法的使用
    js中null和undefined
    学习笔记(二)JavaScript基本概念(语法,数据类型,控制语句,函数)
    学习笔记(-)在html中使用javascript
    将用户输入的字符串反向输出到页面上,并且要求将其中的小写字母转换成大写字母。
    设计一个表单,放入两个按钮,单击它们时将显示不同问候语。
    编写一个函数,在页面上输出1~1000之间所有能同时被3,5,7整除的证书,并要求每行显示6个这样的数
    innerHTML、outerHTML、innerText、outerText的用法与
    web笔试题(3)
  • 原文地址:https://www.cnblogs.com/zhuyaguang/p/4787601.html
Copyright © 2011-2022 走看看