iOS利用運(yùn)行時(shí)實(shí)現(xiàn)<NSCoding>方法

//解檔
- (id)initWithCoder:(NSCoder *)decoder
  {
if (self = [super init]) {
    unsigned int count = 0;
    //獲取類中所有成員變量名
    Ivar *ivar = class_copyIvarList([MyModel class], &count);
      for (int i = 0; i<count; i++) {
          Ivar iva = ivar[i];
          const char *name = ivar_getName(iva);
          NSString *strName = [NSString stringWithUTF8String:name];
          //進(jìn)行解檔取值
          id value = [decoder decodeObjectForKey:strName];
          //利用KVC對屬性賦值
          [self setValue:value forKey:strName];
      }
      free(ivar);
  }
  return self;
  }
//歸檔
- (void)encodeWithCoder:(NSCoder *)encoder
{
    unsigned int count;
    Ivar *ivar = class_copyIvarList([MyModel class], &count);
    for (int i=0; i<count; i++) {
        Ivar iv = ivar[i];
        const char *name = ivar_getName(iv);
        NSString *strName = [NSString stringWithUTF8String:name];
        //利用KVC取值
        id value = [self valueForKey:strName];
        [encoder encodeObject:value forKey:strName];
    }
    free(ivar);
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 淡彩加鋼筆加彩鉛 發(fā)現(xiàn)這種中粗的水彩紙張不夠細(xì)膩,彩鉛上色不好看
    墨夕手繪閱讀 1,105評論 0 0
  • 如何有效地讀書是個(gè)永遠(yuǎn)橫亙在世人眼前的話題??催^許多號(hào)稱讀書的正確方法的文章,其中也確不乏閃耀著真理光芒的真知灼見...
    李瘦城閱讀 2,607評論 10 49
  • 全身心投入正在做的事,這讓我想到了刻意練習(xí)中的“專注”,或者說全身心投入正在做的事本身就是刻意練習(xí)。反觀自己經(jīng)常犯...
    白馬少年說閱讀 382評論 1 1
  • 《有朋遠(yuǎn)來》 佳節(jié)好迎賓, 良友自天涯。 初飲初樂酒, 全聚全州家。 四海稱兄弟, 三杯開話匣。 今宵同醉月, 明...
    賽德傳播閱讀 240評論 0 0

友情鏈接更多精彩內(nèi)容