• OC2_使用系统协议


    //
    //  Dog.h
    //  OC2_使用系统协议
    //
    //  Created by zhangxueming on 15/6/24.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    
    @interface Dog : NSObject <NSCoding>
    
    @property (copy, nonatomic)NSString *name;
    @property (assign, nonatomic)NSInteger age;
    
    @end
    
    
    
    //
    //  Dog.m
    //  OC2_使用系统协议
    //
    //  Created by zhangxueming on 15/6/24.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import "Dog.h"
    
    @implementation Dog
    
    - (void)encodeWithCoder:(NSCoder *)aCoder
    {
        //如果父类也遵守对应的协议,那么应该先调用父类的方法进行编码
        //[super encodeWithCoder:aCoder];
        [aCoder encodeObject:self.name forKey:@"name"];
        [aCoder encodeInteger:self.age forKey:@"age"];
    }
    - (id)initWithCoder:(NSCoder *)aDecoder
    {
        //如果父类也遵守对应的协议,先调用父类的方法解码
        //self = [super initWithCoder:aDecoder];
        if (self = [super init]) {
            self.name = [aDecoder decodeObjectForKey:@"name"];
            self.age = [aDecoder decodeIntegerForKey:@"age"];
        }
        return self;
    }
    
    - (NSString *)description
    {
        return [NSString stringWithFormat:@"name = %@ age = %li",_name, _age];
    }
    @end
    //
    //  main.m
    //  OC2_使用系统协议
    //
    //  Created by zhangxueming on 15/6/24.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    #import "Dog.h"
    
    int main(int argc, const char * argv[]) {
        @autoreleasepool {
    #if 0
            Dog *xiaoBai = [[Dog alloc] init];
            xiaoBai.name = @"小白";
            xiaoBai.age = 12;
            
            BOOL ret = [NSKeyedArchiver archiveRootObject:xiaoBai toFile:@"/Users/zhangxueming/Desktop/Test/dog.txt"];
            if (ret) {
                NSLog(@"归档成功");
            }
            else
            {
                NSLog(@"归档失败");
            }
    #else
           Dog *dog=[NSKeyedUnarchiver unarchiveObjectWithFile:@"/Users/zhangxueming/Desktop/Test/dog.txt"];
            if (dog) {
                NSLog(@"%@", dog);
            }
            
    #endif
        }
        return 0;
    }
  • 相关阅读:
    http缓存机制与原理
    BFC与浮动
    05ICMP协议与ARP协议(IP协议中重要协议)
    04IP编址(网络层)
    03以太网帧结构(链路层 IEEE802.3)
    02传输介质简介
    shell 脚本 2
    shell 脚本 1
    shell 中时间 表达
    sed 行编辑器
  • 原文地址:https://www.cnblogs.com/0515offer/p/4598466.html
Copyright © 2020-2023  润新知