0

タイルが並んでいます

tileArray = [[NSMutableArray alloc]initWithObjects:tile1,tile2,tile3,tile4,tile5,tile6,tile7,tile8,tileBlank, nil];

配列内のオブジェクトを文字列の形で引き出すことは可能ですか? たとえば、tileArray[2] は「tile3」を返します。

編集:文字列の形式でオブジェクトを返そうとする代わりに、正しい場所の数を確認するだけで済みます。たとえば、いくつ一致するかを調べたいとします。この場合、正解は7つです。

tileArray = [[NSMutableArray alloc]initWithObjects:tile1,tile2,tile3,tile4,tile5,tile6,tile7,tile8,tileBlank, nil];

tileArrayCopy = [[NSMutableArray alloc]initWithObjects:tile1,tile2,tile3,tile4,tile5,tile6,tile7,tileBlank,tile8, nil];
4

2 に答える 2

2

インスタンス変数名は、コンパイラによってマングルされて削除されます。AutoLayout がNSDictionaryOfVariableBindings()マクロで非常に簡単に行うように、インスタンスのバッキング ディクショナリを名前に使用できます。

2 つの配列の逆交差が必要な場合は、最初に同じオブジェクトが含まれていることを保証する必要があります。次に-removeObjectsInArray:、NSMutableArray を呼び出して、ターゲット配列に固有のオブジェクトを取得できます。

それ以外の場合は、NSMutableSet を使用して-unionSet、各セットのすべての一意のオブジェクトの数を取得できます。

于 2013-02-28T22:41:28.340 に答える
1

いいえ。オブジェクトは、それを参照する変数の名前を知ることはできません。特に、多くの変数がそのオブジェクトを指している可能性があるためです。

代わりに、オブジェクトには独自の名前を返す追加のコードが必要です。言うように、メソッドを追加することによって-(NSString*)name;

于 2013-02-28T22:42:51.860 に答える