0

私はxcodeを初めて使用し、これに5日間苦労しています。これは非常に単純である必要があることを知っているので、頭がほとんど吹き飛ばされています。

私は2つのタブを持つタブバーベースのiPhoneアプリを持っています。最初のアイテムでは、新しいアイテムを作成し、それらを、すでに作成した「リポジトリ」NSObjectクラス内のNSMutableArrayに格納します。

このリポジトリクラスには、add、remove、update、fetchAllItemsなどのメソッドがあります。最後の1つは、NSMUtable配列に格納されているすべてのアイテムを返すメソッドです。

アイテムとは何かを表すNSObject「アイテム」クラスもあります。

2番目のタブには、最初のタブで作成され、「リポジトリ」クラスに格納されているアイテムを入力するテーブルビューコントローラがあります。

私の質問は:

  • 「Repository」クラスのメソッドを呼び出すことができるように、プロセスのどこかに自分のリポジトリを割り当てる必要があります。問題は、最初のタブコントローラでリポジトリを初期化する場合、最初のタブがロードされるたびに、リポジトリが再び初期化され、そこにあるアイテムが消えてしまうことです。2番目のタブについても同じことが言えます。

したがって、最初のタブビューで「add」メソッドを呼び出し、2番目のタブビュー(つまりテーブルビュー)で「delete」メソッドと「fetchAll」メソッドを呼び出すことができるように、リポジトリをどこに割り当てればよいのでしょうか。同じリポジトリデータを操作していますか?

前もって感謝します

4

3 に答える 3

0

データの受け渡しで問題が発生しているようです。@sergioが提案したように、シングルトンを使用できます。またUtility、すべてのグローバルメソッドにクラスを使用することをお勧めします。したがって、別のタブで変数を更新でき、変数を切り替えると値が反映されます。

于 2012-11-08T16:37:13.990 に答える
0

「Repository」クラスのメソッドを呼び出すことができるように、プロセスのどこかに自分のリポジトリを割り当てる必要があります。問題は、最初のタブコントローラでリポジトリを初期化する場合、最初のタブがロードされるたびに、リポジトリが再び初期化され、そこにあるアイテムが消えてしまうことです。2番目のタブについても同じことが言えます。

シングルトンが必要なようです。

シングルトンは、アプリのどこからでもアクセスできる一意のグローバルオブジェクトです。最初のアクセス時に、それも作成されます。その後のアクセスでは、既存のオブジェクトが返されます。

良いチュートリアルについては、この投稿をご覧ください。

于 2012-11-08T16:26:48.230 に答える
0

アプリデリゲートに「リポジトリ」クラスのプロパティを設定し、アプリの起動が完了したらすぐにそこで初期化できるようです。そうすれば、コードのどの部分からでもアクセスできるようになります。

または、UITabBarViewControllerをサブクラス化し、コントローラーのviewDidLoadメソッドで「Repository」オブジェクトを初期化することもできます。

于 2012-11-08T16:30:44.050 に答える