zoukankan      html  css  js  c++  java
  • 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;
    }
  • 相关阅读:
    iOS企业账号打包发布App到自己服务器上
    DBus 接口
    Ubuntu下安装gazebo
    Ubuntu下添加开机启动脚本
    Ubuntu录屏软件Kazam
    使用ceres编译报错 error: ‘integer_sequence’ is not a member of ‘std‘
    LINUX中查看、添加、删除PATH以及永久添加PATH
    Ubuntu完美解决Github网站打不开问题
    PointNet原理详解
    目标检测算法RCNN,Fast RCNN,Faster RCNN
  • 原文地址:https://www.cnblogs.com/0515offer/p/4598466.html
Copyright © 2011-2022 走看看