Pour une raison quelconque, il me tracasse vraiment que la voie que vous insérez un nouvel objet géré dans un contexte d'objet géré est d'utiliser une méthode de classe sur le NSEntityDescription. Je réalise qu'il n'ya pas "un droit de« l'abstraction, mais chaque fois que j'ai été loin de données de base pour un certain temps, cela me prend un certain temps à se rappeler comment créer et insérer un nouvel objet, car celle-ci:
est totalement non-intuitif pour moi. Bien que la description entité est utilisée dans le processus d'insertion d'un nouvel objet géré, il n'ya aucun moyen que vous pouvez réclamer, c'est le but principal de cette action.
Je peux me tromper, mais je pense que c'était de cette façon dans EOF, aussi. Quoi qu'il en soit, la bonne chose à propos d'avoir un langage dynamique comme Objective-C qui soutient catégories, c'est que vous n'avez pas à vivre avec des choses qui ne correspondent pas à votre façon particulière de penser.
Pour moi, l'endroit logique pour une méthode qui insère un nouvel objet géré dans un contexte d'objets gérés, serait une méthode d'instance sur le contexte, si je pouvais également voir un argument pour qu'il soit une méthode de fabrique sur l'objet géré aussi bien.
Quand j'écris mes propres applications Core Data, j'utilise cette catégorie:
NSManagedObjectContext-insert.h
NSManagedObjectContext-insert.m
Cette catégorie très peu court me permet d'insérer de nouveaux objets dans un contexte en faisant simplement ceci:
Que personnellement, je trouve beaucoup plus facile à retenir que la première.
NSManagedObject *newManagedObject = [NSEntityDescription
insertNewObjectForEntityForName:[entity name]
inManagedObjectContext:context];
est totalement non-intuitif pour moi. Bien que la description entité est utilisée dans le processus d'insertion d'un nouvel objet géré, il n'ya aucun moyen que vous pouvez réclamer, c'est le but principal de cette action.
Je peux me tromper, mais je pense que c'était de cette façon dans EOF, aussi. Quoi qu'il en soit, la bonne chose à propos d'avoir un langage dynamique comme Objective-C qui soutient catégories, c'est que vous n'avez pas à vivre avec des choses qui ne correspondent pas à votre façon particulière de penser.
Pour moi, l'endroit logique pour une méthode qui insère un nouvel objet géré dans un contexte d'objets gérés, serait une méthode d'instance sur le contexte, si je pouvais également voir un argument pour qu'il soit une méthode de fabrique sur l'objet géré aussi bien.
Quand j'écris mes propres applications Core Data, j'utilise cette catégorie:
NSManagedObjectContext-insert.h
#import <Cocoa/Cocoa.h>
@interface NSManagedObjectContext(insert)
-(NSManagedObject *) insertNewEntityWithName:(NSString *)name;
@end
NSManagedObjectContext-insert.m
#import "NSManagedObjectContext-insert.h"
@implementation NSManagedObjectContext(insert)
-(NSManagedObject *) insertNewEntityWithName:(NSString *)name
{
return [NSEntityDescription insertNewObjectForEntityForName:name inManagedObjectContext:self];
}
@end
Cette catégorie très peu court me permet d'insérer de nouveaux objets dans un contexte en faisant simplement ceci:
[context insertNewEntityWityName:[entity name]];Que personnellement, je trouve beaucoup plus facile à retenir que la première.
Aucun commentaire:
Enregistrer un commentaire