Je développe actuellement une application qui dépend fortement de la récupération de contenu Web. J'ai une série de classes NSObject qui représentent le contenu que je récupère au format JSON. J'ai aussi des classes NSManagedObject qui représentent mon modèle Core Data qui sont presque identiques.Core Data: stocker du contenu Web avant de l'enregistrer
Voici un exemple d'une classe NSObject que j'utilise pour tenir mon contenu web:
@interface MovieRecord : NSObject {
NSString *movieTitle;
NSDecimalNumber *movieId;
NSString *movieRating;
NSString *movieDescription;
NSDate *movieReleaseDate;
NSMutableArray *movieVideos; // collection of class videoRecord
NSMutableArray *actors;
UIImage *movieImage;
NSURL *movieImageURL;
}
Et voici un exemple de ma classe NSManagedObject:
@interface Movie : NSManagedObject
{
}
@property (nonatomic, retain) NSNumber * id;
@property (nonatomic, retain) NSString * description;
@property (nonatomic, retain) id image;
@property (nonatomic, retain) NSString * rating;
@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSDate * releaseDate;
@property (nonatomic, retain) NSString * imageURL;
@property (nonatomic, retain) NSSet* actors;
@end
Dans cet exemple, un utilisateur va regarder à travers beaucoup de films, mais ils ne seront pas toujours enregistrer le film dans le magasin persistant. C'était la principale raison pour laquelle je stockais les informations dans des classes séparées, puis si elles décidaient de les sauvegarder, je remplissais les classes d'objets NSManaged et les enregistrais. La classe NSObject ne sera pas entièrement remplie tant que l'utilisateur n'aura pas accédé à la vue détaillée (à l'origine, seuls MovieTitle et MovieID seront définis).
Je suppose que ma question est la suivante: est-il logique de garder ces classes séparées? Y a-t-il une meilleure approche de conception que je ne vois tout simplement pas? Devrais-je m'en tenir à utiliser le NSDictionary pour remplir mes vues de table (NSDictionary est peuplé à partir des données JSON)?