-(void)encodeWithCoder:(NSCoder *)encoder{
unsigned int count = 0;
//取出Person這個(gè)對(duì)象的所有屬性
Ivar *ivars = class_copyIvarList([self class], &count);
//對(duì)所有屬性進(jìn)行遍歷
for (int i = 0; i<count; i++) {
// 取出i位置對(duì)應(yīng)的成員變量
Ivar ivar = ivars[i];
// 查看成員變量
const char *name = ivar_getName(ivar);
// 歸檔
NSString *key = [NSString stringWithUTF8String:name];
id value = [self valueForKey:key];
[encoder encodeObject:value forKey:key];
}
free(ivars);
}
-(id)initWithCoder:(NSCoder *)decoder{
if (self = [super init]) {
unsigned int count = 0;
Ivar *ivars = class_copyIvarList([self class], &count);
for (int i = 0; i<count; i++) {
// 取出i位置對(duì)應(yīng)的成員變量
Ivar ivar = ivars[i];
// 查看成員變量
const char *name = ivar_getName(ivar);
// 歸檔
NSString *key = [NSString stringWithUTF8String:name];
id value = [decoder decodeObjectForKey:key];
// 設(shè)置到成員變量身上
[self setValue:value forKey:key];
}
free(ivars);
}
return self;
}
runtime 解檔歸檔
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 在進(jìn)行數(shù)據(jù)持久化的時(shí)候,需要進(jìn)行序列化,轉(zhuǎn)化成二進(jìn)制流,同樣,得到二進(jìn)制流后,需要進(jìn)行反序列化,還原數(shù)據(jù)。 1、歸...
- 簡(jiǎn)單的創(chuàng)建一個(gè)Person對(duì)象,并聲明幾個(gè)屬性 歸檔 設(shè)置哪些屬性是需要?dú)w檔的 解檔 設(shè)置哪些屬性需要解檔 使用
- 先看一個(gè)初始版的 ` (void)viewDidLoad {[super viewDidLoad];Person ...
- 系統(tǒng)類型 1.歸解檔字符串 兩者都需要先拼出文件路徑:歸檔 解檔 2.歸解檔數(shù)組 兩者都需要先拼出文件路徑:歸檔 ...