標籤:
#import <Foundation/Foundation.h>@interface User : NSObject<NSCoding> //遵循NSCoding協議/** name */@property (nonatomic, copy) NSString *name;/** age */@property (nonatomic, assign) NSInteger age;//自訂初始化方法- (instancetype)initWithName:(NSString *)name age:(NSInteger)age;@end-----------#import "User.h"@implementation User//初始化- (instancetype)initWithName:(NSString *)name age:(NSInteger)age{ self = [super init]; if (self) { self.name = name; self.age = age; } return self;}//歸檔- (void)encodeWithCoder:(NSCoder *)aCoder{ [aCoder encodeObject:self.name forKey:@"name"]; [aCoder encodeInteger:self.age forKey:@"age"];}//反歸檔- (instancetype)initWithCoder:(NSCoder *)aDecoder{ self = [super init]; if (self) { self.name = [aDecoder decodeObjectForKey:@"name"]; self.age = [aDecoder decodeIntegerForKey:@"age"]; } return self;}@end
//歸檔 編碼 User *user = [[User alloc] initWithName:@"張三" age:18]; NSData *userData = [NSKeyedArchiver archivedDataWithRootObject:user]; //反歸檔 解碼 User *user1 = [NSKeyedUnarchiver unarchiveObjectWithData:userData];
iOS --Archive Storage自訂對象