2011-07-16 5 views
2

私はObjective Cで非常にnewbyです。私は多くの話題を読んでいますが、解決策を得ることはできませんでした。 私はNSMutableArrayのを使っていて、次のモードによってはallocとinit:NSMutableArrayの初期化

events = [[NSMutableSet alloc] init]; 

はそれが正しいですか?このようにして問題なく配列にオブジェクトを追加できますが、反復または読み込みを行うとSIGABRT: unrecognized selector sent to instanceになります。いくつかの変更を試みて、私が得ることができる最高のものは別の例外でした:EXC_BAD_ADDRESS。配列を読み込むために使用している行は、

Event *event = [events objectAtIndex:1]; 

ありがとうございます。

ジュニア

+2

Hm。あなたは 'NSMutableArray'について話していますが、' NSMutableSet alloc'をしています...? – Dirk

答えて

0

どうしますか?配列はゼロインデックス付けされていることに注意してください。そこには2つの要素がないかもしれません。 countメソッドを使用してみてください。

3

あなたがNSMutableArraysを使用していると述べたが、その後セットを初期化している、使用してみてください:彼らは順不同であるため、

NSMutableArray *events = [[NSMutableArray alloc] init]; 

セットは、objectAtIndexに応答しません。オブジェクトをセットから外したい場合は、そのオブジェクト上のanyObjectを呼び出すことができます。列挙を使用してすべてのオブジェクトを処理できます。このよう 例えば

id obj=[events anyObject]; 

または

for(id obj in events){ 
    NSLog(@"%@",obj); 
}   
0
events = [[NSMutableArray alloc] init]; 
[events addObject:event1]; 
[events addObject:event2] 

for (int i = 0; i < [events count]; i++) { 
    Event *event = (Event)[events objectAtIndex:i]; 
    NSLog("Event: %@", event); 
    [event release]; 
} 

+0

ありがとうございました...とても多くの試みの途中で、私はこの詳細を無視しました... – Junior

+0

あなたは大歓迎です。これであなたの質問が解決したら、「正しい」と記入してください。 :) – Jules