OC归档的对象里面包括其余类的属性!

main.m

#import <Foundation/Foundation.h>atom

#import "FJPerson.h"spa

#import "FJCar.h".net

#define PATH @"/Users/IOS1601/Desktop/plist文件/personCar"3d


//若是须要归档的对象的属性中又另一个类的对象,让两个类code

//都遵照NSCoding协议而且实现协议的方法,去归档和解归档相应的属性;orm




int main(int argc, const char * argv[]) {对象

    @autoreleasepool {get

        FJPerson *person = [[FJPerson alloc]init];it

        person.name = @"fanjuan";io

    

        FJCar *car = [[FJCar alloc]init];

        car.color = @"yellow";

        car.price = 77777777;

        person.car = car;

        

        //归档

        

     //   [NSKeyedArchiver archiveRootObject:person

       //toFile:PATH];

        

    FJPerson *p = [NSKeyedUnarchiver unarchiveObjectWithFile:PATH];

        

        NSLog(@"车主%@  车颜色%@  车价格%.2lf",p.name,p.car.color,p.car.price);

    }

    return 0;

}

#pragma mark 归档



FJCar.h

#import <Foundation/Foundation.h>


@interface FJCar : NSObject <NSCoding>


//颜色

@property (nonatomic,copy) NSString *color;

//价格

@property (nonatomic,assign) double price;


@end


FJCar.m


#import "FJCar.h"


@implementation FJCar


- (void)encodeWithCoder:(NSCoder *)aCoder{

    

    [aCoder encodeObject:_color forKey:@"color"];

    

    [aCoder encodeDouble:_price forKey:@"price"];

    

}


- (instancetype) initWithCoder:(NSCoder *)aDecoder{

    if(self = [super init]){

    _color = [aDecoder decodeObjectForKey:@"color"];

    

    _price = [aDecoder decodeDoubleForKey:@"price"];

    }

    return self;

}



@end


FJPerson.h

#import <Foundation/Foundation.h>

@class FJCar;

@interface FJPerson : NSObject <NSCoding>


//姓名

@property (nonatomic,copy) NSString *name;

//

@property (nonatomic,strong) FJCar *car;

@end


FJCar.m


#import "FJCar.h"


@implementation FJCar


- (void)encodeWithCoder:(NSCoder *)aCoder{

    

    [aCoder encodeObject:_color forKey:@"color"];

    

    [aCoder encodeDouble:_price forKey:@"price"];

    

}


- (instancetype) initWithCoder:(NSCoder *)aDecoder{

    if(self = [super init]){

    _color = [aDecoder decodeObjectForKey:@"color"];

    

    _price = [aDecoder decodeDoubleForKey:@"price"];

    }

    return self;

}



@end

相关文章
相关标签/搜索