現在、Web コンテンツの取得に大きく依存するアプリを開発しています。JSON 形式で取得するコンテンツを表す一連の NSObject クラスがあります。また、ほとんど同じ Core Data モデルを表す NSManagedObject クラスもあります。
Web コンテンツを保持するために使用する 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 データから入力されます)。