0

ナビゲーション コントローラーと tableViews を使用するアプリを入手しました。クラスを作成して、ディスクに保存せずにさまざまなビューをナビゲートしながら永続的な情報を簡単に保存したいと考えています。

singletonsのみで を作成することもできますclass methodが、この場合はデータを として保持するコレクション クラスを作成する必要がありますinstance variable(@properties はクラス メソッドでは機能しないため)。iOS のプロパティで宣言されたオブジェクトしか見たことがありません。

クラスは次のようになります

ヘッダ:

+ (BOOL) addObject: (id) object;
+ (BOOL) removeObject: (id) object;
+ (NSInteger) count;

個人的には、ストレージ用に NSArray を用意します

NSArray *cache;

しかし、これはタスクを達成するための良い方法ですか? または、インスタンスメソッドを持つ非シングルトンクラスを持ち、異なるテーブルビューでクラスの同じインスタンスを使用することは可能でしょうか? もしそうなら、どうすればいいですか?

4

2 に答える 2

0

まず、すべての readwrite プロパティはインスタンス変数を自動合成します (setter と getter の両方を実装しない限り)。

第 2 に、その情報がアプリ全体 (または大部分) に対してグローバルである場合、シングルトンがまさに必要なものです。プロパティ (または ivar) として保持する必要はありません。これはシングルトンであり、独自のポインターを保持します。

それでもプロパティを使用したい場合は、アプリ内のすべての VC に何らかの方法で渡す必要があります (prepareForSegue:sender:おそらくストーリーボードを使用している場合)。

于 2013-03-15T06:40:51.173 に答える
0

まず、必要なグローバル情報を把握します。次に、そのグローバル情報と一致する有効期間を持ち、情報に論理的に関連付けられているオブジェクトを既に持っているかを調べます。たとえば、UITableView を「バックアップ」するために情報の配列が必要な場合は、その配列へのポインターをテーブル ビュー データ ソース インスタンスに格納します。

「シングルトン」を作成する必要はめったになく、多くのシングルトンを持つことは通常、プログラミングが不十分であることを示しています。

于 2013-03-19T11:36:58.107 に答える