2011-02-02 12 views
1

ユーザーがAdd to FavoritesボタンをタップするとNSMutableArrayにaddObjectを追加しようとしています。NSDictionaryにデータを取得できますが、NSDictionaryを配列に渡すとNSLogが表示されますバックなし。何か不足していますか?iPhone addObjectを別のViewControllerからNSMutableArrayに追加

-(IBAction) addtofavorites: (id)sender 
{ 
    NSArray *key = [NSArray arrayWithObjects:@"Title", @"Description", nil]; 
    NSArray *objects = [NSArray arrayWithObjects:CurrentTitle, description.text, nil]; 
    NSDictionary *fadd = [[NSDictionary alloc] initWithObjects:objects forKeys:key]; 

    FavoritesViewController *fvc = [[FavoritesViewController alloc] init]; 
    [fvc.favorites addObject:fadd]; 
    [FavoritesViewController release]; 
} 
+0

のdeallocでFavoritesViewControllerオブジェクトを解放します。コアデータを使用してお気に入りを保存しています。私はNSManagedObjectContexにゲームを追加する方法がわかりません。私はゲームと呼ばれるクラスを持ち、3 NSStringを渡したいと思う。私のappDelegate、Games、または私のViewControllerのコンテキストでメソッドを作成しますか?確かに、コアデータを自分で教えるためにしばらく時間がかかりますが、今、私はそれをうまく処理していると思います。ありがとう –

答えて

0
FavoritesViewController *fvc = [[FavoritesViewController alloc] init]; 
[fvc.favorites addObject:fadd]; 
[FavoritesViewController release]; 

右見ていません。あなたは既に初期化FavoritesViewController(ここでそれをアクセスして-addObject呼び出すことができます)が必要です...

EDITを

まず、現在のビューコントローラ(-addtofavoritesを持っているものをどうしますか: FavoritesViewControllerに関連していますか?ユーザーはこれらの2つのView Controller間をどのようにナビゲートしますか?

第2に、お気に入りのリストは、アプリのさまざまな実行にわたって維持されますか?もしそうなら、お気に入りの保存/復元をどうやって計画していますか?

第3に、お気に入りをビューコントローラに追加するのではなく、FavoritesViewControllerを設定するために使用される基になる「モデル」に追加するほうがよいでしょう。

「モデル」を「ビュー」から分離することは非常に強力で、コードも簡素化できます。

+0

私はDetailViewControllerでIBActionを作成します。それはなぜ私が割り当てて、IBActionでそれを初期化するのですか? –

+0

しかし、あなたは即座に連続してinitとreleaseのfvcを割り当てます。どうして? – westsider

+0

私はfvc.favoritesが私のNSDictionaryオブジェクトを持つべきだと思ったからです。だから私はFavoritesViewControllerでやりました –

0

あなたが保持するFavoritesViewControllerのインスタンス変数をヘッダファイルに作成します。次に、addtofavoritesが押されたときにlazy initを使用します。

if (!detailViewController) 
    { 
    self.fvc = [[FavoritesViewController alloc] init]; 
    } 

[self.fvc.favorites addObject:fad]; 

以下のようなものは、それからちょうどので、私は別の方向に行ってきましたが、まだ同じ問題を抱えている

- (void)dealloc { 
    [fvc release]; 
    [super dealloc]; 
} 
関連する問題