//
// nsobject+basemodel.h
// runtime-字模轉換
////
#import @inte***ce nsobject (basemodel)
+ (instancetype)modelwithdic:(nsdictionary *)dic;
+ (nsdictionary *)arraycontainmodelclass;
@end
//
// nsobject+basemodel.m
// runtime-字模轉換
////
#import "nsobject+basemodel.h"
#import @implementation nsobject (basemodel)
+ (instancetype)modelwithdic:(nsdictionary *)dic
}// **轉換:字典當中還有陣列,把陣列中的字典轉換成模型
// 判斷是否是陣列
if([value iskindofclass:[nsarray class]])
value = modelarr;}}
}// 設定屬性的值有兩種方式
// 方式1
if(value)
// 方式2
// if (value)
}return objc;
}@end
//
// viewcontroller.m
// runtime-字模轉換
////
#import "viewcontroller.h"
#import "nsobject+basemodel.h"
#import "testmodel.h"
@inte***ce viewcontroller ()
@end
@implementation viewcontroller
- (void)viewdidload ,
@"modelarr":@[@,
@]};
testmodel *model = [testmodel modelwithdic:dic];
nslog(@"%@ + %@",model.age,model.name);
nslog(@"%@ + %@",model.dic.age,model.dic.name);
for (nsuinteger i=0,n = model.modelarr.count; i < n; i ++)
}- (void)didreceivememorywarning
@end
demo已上傳github
字模生成原理
漢字的點陣字模是從點陣字型檔檔案中提取出來的。例如常用的 16 16 點陣hzk16 檔案,12 12 點陣hzk12 檔案等等,這些檔案包括了 gb 2312 字符集中的所有漢字。現在只要弄清漢字點陣在字型檔檔案中的格式,就可以按照自己的意願去顯示漢字了。下面以hzk16 檔案為例,分析取得漢字點...
套接字模型
套接字i o模型 1 select模型 select模型是一種常見的模型,通過select函式來確定套接字狀態。在網路應用程式中,通過乙個執行緒來設計乙個迴圈,不停的呼叫select函式,判斷套接字上是否存在資料或者是否能夠向套接字寫入資料等 int select int nfds,fd set f...
套接字模型
套接字i o模型 1 select模型 select模型是一種常見的模型,通過select函式來確定套接字狀態。在網路應用程式中,通過乙個執行緒來設計乙個迴圈,不停的呼叫select函式,判斷套接字上是否存在資料或者是否能夠向套接字寫入資料等 int select int nfds,fd set f...