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;
    }
  • 相关阅读:
    接口和抽象的区别
    接口
    jquery Ajax提交表单数据
    SQL 检查 是否存在 表 临时表
    ASP.NET MVC 设置Area中 Controller 的方法 默认启动页
    json 序列化为数组
    C# Lamda中类似于SQL 中的 In 功能
    各种webservice调用地址
    ASP.NET获取客户端IP地址
    C#反射机制 Type类型
  • 原文地址:https://www.cnblogs.com/0515offer/p/4598466.html
Copyright © 2011-2022 走看看