AutoMapper for .Net vous permet de mapper d'un type à un autre. Sa fonction la plus élémentaire consiste à créer un type de classe à partir d'un autre type de classe en copiant les valeurs de propriété du type A qui existent dans le type B (avec des noms et des types correspondants).Y a-t-il quelque chose de similaire à AutoMapper pour Objective-c?
Exemple:
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"
Y at-il quelque chose comme ça pour Objective-C?
Marqué cela comme une solution car elle s'occupe d'une partie du problème, je vais devoir construire un tableau de clés en utilisant class_copyPropertyList. Basé sur votre première phrase, il semble que vous pensez que c'est une mauvaise idée, une raison particulière? Je veux le faire pour créer des modèles de vue dégradés pour plusieurs vues à partir d'un seul type de NSManagedObject sans avoir à mapper les propriétés individuelles manuellement. – George
Pourquoi voulez-vous utiliser "view models" plutôt que d'utiliser directement les objets du modèle? –
De même, si vous traitez des objets gérés, vous ne devez pas utiliser class_copyPropertyList; vous pouvez simplement demander à l'entité d'un objet quelles sont ses propriétés (modélisées) et obtenir ses descriptions de ses attributs, relations et propriétés récupérées. –