#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
//-------------------第一种归档方式------------------------------------
//归档
// NSString *homeDirectory = NSHomeDirectory();
// NSArray *array =@[@"111",@"222",@"abc",@"999"];
// NSString *path = [homeDirectory stringByAppendingPathComponent:@"array.archiver"];
// if ([NSKeyedArchiver archiveRootObject:array toFile:path]) {
// NSLog(@"archiver success");
// }
//
// //解归档
// NSArray *unarray = [NSKeyedUnarchiver unarchiveObjectWithFile:path];
// NSLog(@"new array = %@",unarray);
//-------------------第二种归档方式------------------------------------
NSString *homepath = NSHomeDirectory();
NSString *filepath = [homepath stringByAppendingPathComponent:@"text.txt"];
NSMutableData *data = [NSMutableData data];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc]initForWritingWithMutableData:data];
[archiver encodeFloat:50.0 forKey:@"weight"];
[archiver encodeObject:@"jack" forKey:@"name"];
[archiver encodeInt:30 forKey:@"age"];
[archiver finishEncoding];
BOOL success = [data writeToFile:filepath atomically:YES];
if (success) {
NSLog(@"archiver success");
}
NSData *undata = [NSData dataWithContentsOfFile:filepath];
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc]initForReadingWithData:undata];
float weight = [unarchiver decodeFloatForKey:@"weight"];
NSString *name = [unarchiver decodeObjectForKey:@"name"];
int age = [unarchiver decodeIntForKey:@"age"];
NSLog(@"weiht = %f",weight);
NSLog(@"name = %@",name);
NSLog(@"age = %d",age);
}
return 0;
}