2010-12-04 18 views
0

配列をnsmutabledictionaryに追加していますが、その配列に0を渡します。 私はviewDidLoadメソッドで辞書を割り当てました。配列はnsmutabledictionaryに追加されていません

私は体を助けてください。

ありがとうございます。

- (void)creatingDictionary{ 

     songsDict = nil; 
     NSMutableArray *hrSongs = [[NSMutableArray alloc]init]; 
     for(int i=0;i<[onAirSongs count];i++){ 
      for(int j=i;j<[onAirSongs count];j++){ 
       Song *a1 =(Song *)[onAirSongs objectAtIndex:i]; 
       Song *a2 =(Song *)[onAirSongs objectAtIndex:j]; 
       if(a1.cellId == a2.cellId) 
        [hrSongs addObject:a2]; 
       else{ 
        [songsDict setObject:hrSongs forKey:[NSString stringWithFormat:@"%d",i]];       
        hrSongs = nil; 
        i=j-1; 
        break; 
       } 
      }//inner for 
     }//out for 
     [hrSongs release]; 
     NSLog(@"songsdictionary count....%d",[songsDict count]); 

    } 

答えて

3

あなたが設定している曲は無しです。存在しない辞書に配列を追加することはできません。

+0

Heh。彼がこれだけを修正すれば、それはまだ間違っているでしょう。まぁ。 – bbum

1

blindJesseは正しいですが、多くの問題がここにあります

  1. あなたはnilにsongsDictを設定しています。 Objective-Cでは、nil-eats-messagesとなります。したがって、[songsDict setObject:.....]の場合は何もしません。

  2. ループの途中で、hrSongs = nil;です。ループを通した後続の反復は、何もしないでうれしく、をnilで呼ぶでしょう。

  3. この全体がちょっと変わったようです。 onAirSongsには何が含まれていますか?細胞?これは、Model-View-Controllerの分離を実際には保持していないようです。それはかもしれない仕事が、あなたはあなたのUIを変更する必要がある場合は、道路の下に深刻なメンテナンスの頭痛のためです。

関連する問題