用於.Net的AutoMapper允許您從一種類型映射到另一種類型。其最基本的功能是通過複製類型B中存在的類型A(具有匹配的名稱和類型)的屬性值,從另一類類型創建一種類型的類。有沒有類似於Objective-c的AutoMapper?
例子:
public class ClassA {
public string StringProp { get; set; }
public int IntProp { get;set; }
}
public class ClassB {
public string StringProp { get; set; }
public int SomeIntProp { get; set; }
}
ClassA classAInstance = new ClassA { StringProp = "Test", IntProp = 5 };
ClassB classBInstance = Mapper.Map<ClassA, ClassB>(classAInstance);
// This creates a new instance of ClassB and sets its StringProp property to "Test".
// It does not set the property on ClassB called "SomeIntProp" because there is no
// property on ClassA called "SomeIntProp"
有沒有這樣的事了Objective-C的?
TS鍵/值標記這是因爲它的解決方案確實照顧到部分問題,我仍然需要使用class_copyPropertyList構建一個鍵數組。根據你的第一句話,這聽起來像你認爲這是一個壞主意,任何特定的原因?我想這樣做,從單一類型的NSManagedObject爲多個視圖創建虛擬視圖模型,而無需手動映射各個屬性。 – George 2010-10-21 13:22:14
爲什麼要使用「視圖模型」而不是直接使用模型對象? – 2010-10-22 22:08:30
另外,如果您正在處理託管對象,則不應使用class_copyPropertyList;你可以問一個對象的實體它的(被建模的)屬性是什麼,並且獲得它的屬性,關係和提取屬性的描述。 – 2010-10-22 22:09:31