2011-01-26 6 views
0

forループ内の配列に文字列オブジェクトを追加したいとします。以下は私のコードです。NSMutableArrayに文字列が追加されない

for (int i=0;i<[retrievedArray count];i++) 
{ 
    NSString *temp = [[retrievedArray objectAtIndex:i] OfficialName]; 
    [detailPgArray addObject:temp]; 
} 

私は(ない直接文字列としてではなく、OfficialNameなど)retrievedArray内部に10個のオブジェクト

を持っていますが、何らかの理由で、用ループの最後で、detailPgArrayが0のオブジェクトを持っています。助けてください。

+0

コードを強調表示し、 "{}"ボタンを押してコードを書式設定できます。 – Anna

+0

detailPgArrayはありませんか?コードはうまく見えますが、detailPgArrayがnilの場合、常に0のカウントが返されます。 – Joe

+0

.hファイルのdetailPgArrayを宣言して、this forループ内に設定しようとしています。私はそれをnilanywhereに設定していない。 – testndtv

答えて

3

詳細PgArrayはおそらくnilです。あなたはどこかに割り当てる必要があります。インスタンス変数の場合は、次のように試してみてください。 Objective-Cで

[detailPgArray release]; 
detailPgArray = [[NSMutableArray alloc] initWithCapacity:[retrievedArray count]]; 

for (int i=0;i<[retrievedArray count];i++) 
{ 
    NSString *temp = [[retrievedArray objectAtIndex:i] OfficialName]; 
    [detailPgArray addObject:temp]; 
} 
+0

この素晴らしい基本的な学習のために皆さんありがとう...あなたはすべてのロック..簡単に私はあなたのすべての回答を受け入れることはできませんでした! – testndtv

1

私はあなたがdetailPgArrayの割り当てと初期化を怠ったと思います。それが無ければ、あなたの-addObject:呼び出しは空に変換され、後で-countを呼び出すとnilまたは0が返されます。

0

ほとんどの場合、detailPgArrayはゼロです。変数に入るために配列を作成する必要があります。

0

あなたはnilにメッセージを送ることができますし、アプリケーションがクラッシュしません - それは、そのaddObjectコールであなたのコード内で何が起こっているかです。配列を割り当てて初期化する必要があります。

関連する問題