有没有类似AutoMapper for Objective-c的东西?

时间:2010-10-20 23:14:49

标签: .net objective-c automapper key-value-coding

AutoMapper for .Net允许您从一种类型映射到另一种类型。它最基本的功能是通过复制类型B中存在于类型B中的属性值(具有匹配的名称和类型),从另一种类创建一种类型。

示例:

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有这样的东西吗?

3 个答案:

答案 0 :(得分:1)

如果你真的想要,你可以使用键值编码,但我会强烈考虑你为什么要首先做这样的事情。

要使用键值编码执行此操作,请使用-dictionaryWithValuesForKeys:-setValuesForKeysWithDictionary:执行此操作。它们记录在NSKeyValueCoding Protocol Reference

答案 1 :(得分:1)

我一直在寻找同样的东西。

我遇到了这个:

https://github.com/dchohfi/KeyValueObjectMapping

它适用于一个非常常见的用例:JSON服务器对域模型的响应。

我也遇到了这个:https://github.com/jwillis/CHAutoMapper

答案 2 :(得分:0)

使用AutoMapper后,我遇到了类似的.NET世界问题,最后我使用了OCMapper库。

功能

  • 支持数组映射
  • 支持树结构映射
  • 支持复杂对象嵌套
  • 支持核心数据(NSManagedObjects)
  • 映射配置既可以在代码中完成,也可以通过PLIST
  • 完成
  • 自动检测基于NSDictionary键的键/值
  • 完全可配置
  • 不需要子类化或向模型添加任何额外代码
  • 自动日期转换和可配置的DateFormatters