わかりました - ここで何が起こっているのかよくわかりません。シンプルなカードゲームを作っています。「カード」が必要とするすべてのものを処理する UIView のカテゴリを作成しました。これは無関係だと思いますが、おそらくそうではありません。
とにかく、私のView Controllerでは、ディーラーとプレイヤーの手を握るために2つのNSMutableArrayを作成しています。次に、カードの値を設定するメソッドを呼び出しています。そのメソッドでは、特定のカード オブジェクトの値を確認するために NSLog を実行します。しかし、View Controller からその値を取得しようとすると、配列内の最後のオブジェクトの値を持つすべてのオブジェクトに対して常に返されます。
いくつかのコード:
playersCards = [[NSMutableArray alloc] initWithObjects:[[UIView alloc] init],[[UIView alloc] init],nil];
[[playersCards objectAtIndex:0] setCardValue];
[[playersCards objectAtIndex:1] setCardValue];
NSLog(@"1: %i",[[playersCards objectAtIndex:0] returnValue]);
NSLog(@"2: %i",[[playersCards objectAtIndex:1] returnValue]);
したがって、setCardValue (これはカテゴリ内にあります) を呼び出した後に NSLog を取得すると、すべて問題ありません。しかし、それらの NSLog はすぐそこにあり、両方のインデックス 1 の値を返します。ここで何が起こっているのですか?