2016-11-13 8 views
-2

6つのカテゴリには一意のデータが含まれています。私はこのようになりますクラスを定義している:私は何をしたいかクラス間でオブジェクトを永続化する方法

@interface ExportBookData : NSObject { 

} 

@property (strong, nonatomic) NSArray *booksArray; 
@property (nonatomic, retain) NSMutableDictionary *builtFileList; 
@property (nonatomic, retain) NSMutableArray *exportData; 

@end 

は、データが持続た、一度別のクラス全体でクラスをインスタンス化し、各カテゴリ、および使用のために、クラスExportBookDataをインスタンス化することが可能で、クラス間でアクセス可能。

私はこのコードを試してみましたが、それは私が必要なものを行いません。

ExportBookData *abe = [ExportBookData new]; 
abe.abeBuiltFileList = [NSMutableDictionary dictionary]; 
abe.abeExportData = [NSMutableArray arrayWithCapacity:abe.abeBooksArray.count]; 

UPDATE問題は、オブジェクトのアドレッシングです。私には、Abe、Balls、Comp、Caller、Hut、Houseというカテゴリがあります。私はクラスに、阿部、球などとして扱うことができるプロパティを持たせたいと思います。私が定義したものでそれをどうやって行うのか分かりません。

私はGoogleで調べましたが、私の特定の質問には何も答えませんでした。

+0

この質問に投票した人には、質問を知的に尋ねるのに十分な知識がなければ、私はどのように研究努力を示すことができますか?私はすでにGoogleを見て、助けになるものは何も見つけられませんでした。 – SpokaneDude

+0

なぜあなたは必要なことをしませんか?詳細を提供する必要があります。それがどこで失敗するか教えてください。 –

+0

"授業では、阿部、玉などのように扱うことができるプロパティを持たせて欲しいです。なぜそれが必要ですか?別の言い方をすると、あなたの例を見て、なぜあなたは 'abeBuiltFileList'というプロパティが必要でしょうか?なぜこの事がAbeのためにインスタンス化されたものであっても、ボールのためにインスタンス化されたものであっても動作する 'builtFileList'を持っていないのでしょうか?明らかに、それらのインスタンスのインスタンス化のみが行われるので、ただ一つの 'builtFileList'プロパティが必要です。 – matt

答えて

1

カプセル化、カプセル化、カプセル化!特別な知識をクラスそのものに入れてください

たとえば、使用する書店によって異なる動作をするExportBookDataオブジェクトがあるとします。そして、書店の型を取る初期化子提供:

ExportBookData *abe = [[ExportBookData alloc] initWithCategory:@"Abe"]; 

大丈夫、今ExportBookDataのこのインスタンスは、その行動は阿部型挙動であることを知っています。しかし、 ExportBookDataがどのように初期化されても、その公開プロパティの名前はすべて同じになります。 builtFileListexportDataですので、abe.builtFileListを参照することができます。これは、の右のようなものです。

+0

それだけです!私はそれで作業します、今、私は必要なものを知っています...ありがとうマット、とても感謝します。 SD – SpokaneDude

+0

一般的な動作を提供するExportBookDataクラスを持ち、次にAbeExportBookDataサブクラス、BallsExportBookDataサブクラスなどを提供するサブクラスを使用することがさらに可能であることを指摘しておきます。 _その書店のための_specialized_動作。あなたがクラスのための "カテゴリの種類を切り替える"の多くを自分自身を参照してくださいいつでも、それは代わりにサブクラスを使用して修正の悪臭です。別の方法では、サブクラスはスイッチですが、コードロジックレベルではなく構造レベルです。 – matt

+0

情報ありがとうございました。この場合、各書店には関連する辞書があり、各辞書には2つの文字列配列があり、そのうちの1つはめったに変化せず、もう1つは販売場所によってさらに処理されるべき文字列を含んでいます。このアプリは、Windowsアプリケーションとしてかなりの数年前からあり、iOSのために書き直しました。もう一度お世話になりました。本当に感謝しています。 SD – SpokaneDude

関連する問題