一般手動解析的時候,代碼以下:json
Foo *foo = [[Foo alloc] init];
foo.itemID = [dictionary objectForKey:@"id"];
foo.bar = [dictionary objectForKey:@"bar"];
foo.baz = [dictionary objectForKey:@"baz"];
foo.quz = [dictionary objectForKey:@"quz"];複製代碼
手寫的缺點顯而易見緩存
若是要想實現自動轉換的話,至少要有一下兩點。安全
幾點要求:函數
2. 將model解析成class info以後,將class info緩存到cache中。使用信號量保證緩存線程安全。性能
3. 類型的自動轉換嘗試,賦值時,會先根據value和property info的信息,會嘗試轉換成正確的形式,若是value沒法轉換成property類型,也要保證安全。spa