В настоящее время я занимаюсь разработкой приложения, которое в значительной степени зависит от извлечения веб-содержимого. У меня есть серия классов NSObject, которые представляют контент, который я получаю в формате JSON. У меня также есть классы NSManagedObject, которые представляют мою модель базовых данных, которые практически идентичны.
Вот пример класса NSObject, который я использую для хранения своего веб-контента:
@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;
}
А вот пример моего класса 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
В этом примере пользователь просматривает много фильмов, но не всегда сохраняет фильм в постоянном хранилище. Это было моей главной причиной для хранения информации сначала в отдельных классах, затем, если они решат ее сохранить, я заполню классы объектов NSManaged и сохраню. Класс NSObject не будет заполнен полностью, пока пользователь не перейдет к подробному виду (первоначально будут установлены только movieTitle и movieID).
Полагаю, мой вопрос здесь: имеет ли смысл разделять эти классы? Есть ли лучший дизайнерский подход к этому, которого я просто не вижу? Должен ли я просто использовать NSDictionary для заполнения моих табличных представлений (NSDictionary заполняется из данных JSON)?