將下班甘畅,余些許時間埂蕊,閑來無事往弓,偶憶他人詢歸解檔之簡法,故作小結(jié)蓄氧,祈與君有助函似。
閑言簡之,此為尋代碼之處喉童。
用法簡介之:
1撇寞、移以下類別于君項目中。
2堂氯、無它操作蔑担,遂心將類對象歸解檔之。
3咽白、做歸解檔演示狀:
歸檔:
//創(chuàng)建需要歸檔的對象
Car *car = [[Car alloc] init];
car.brand = @"BMW";
car.color = [UIColor redColor];
//歸檔文件路徑
NSString *filePath = [DOCUMENTSDIR stringByAppendingPathComponent:FILENAME];
//歸檔
[NSKeyedArchiver archiveRootObject:car toFile:filePath];
解檔:
//解檔文件路徑
NSString *filePath = [DOCUMENTSDIR stringByAppendingPathComponent:FILENAME];
//解檔
Car *car = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];
原理簡介之
@interface NSObject (Archive)
#import <objc/runtime.h>
于基類作之啤握,運行時助之,子類廣適之晶框。
unsigned int ivarsCount = 0;
Ivar *ivars = class_copyIvarList([self class], &ivarsCount);
運行時助尋類之屬性排抬。
for (int i = 0; i < ivarsCount; i++) {
NSString *key = [NSString stringWithUTF8String:ivar_getName(ivars[i])];
[coder encodeObject:[self valueForKey:key] forKey:key];
}
屬性遍歷之懂从,以歸檔之法逐一適之。
反之解檔相似也蹲蒲,唯尋屬性逐一解之番甩。
望與君有助缘薛。