0

for ステートメントを使用して、配列内のすべてのオブジェクトを列挙しています。配列内のオブジェクトごとに、毎回異なるオブジェクトを作成するようにして、異なるオブジェクトを参照できるようにしたいと考えています。たとえば、配列には 5 つの文字列オブジェクトがあります。for ステートメントを使用して各オブジェクトを列挙し、毎回テキスト @"hello" を含む nsmutablestring を作成します。

for (NSString *string in array) {

 // Ignore string variable
 NSMutableString *
 // I have this problem, how do I code it so that it makes a new                                               NSMutableString with a separate name that i can specify 
 // so i can refer to it
  = [NSMutableString alloc] init];

   // More code that is not relevant

}

ここで簡単に理解できなかった場合に備えて.... 配列 - 5 つのオブジェクトが配列を列挙し、毎回別の名前で新しいオブジェクトを作成するので、それを参照できます: object1 object2 object3 object4 object5

アップデート:

配列とは、NSArrayを意味します

私の問題は、uiimageviewを追加していることです...

4

3 に答える 3

2

あなたの質問がよくわかりません... 配列オブジェクトは、インデックスによって既に一意に識別されています。なぜ別の名前 (NSString * ポインター) が必要なのですか ???

これは、この配列にある文字列の数と、それぞれが何を表しているかを既に知っている場合に関連する可能性があります。(たとえば、プログラムのいくつかの構成パラメーターを表す文字列の配列...誰かがより良い例を考えている場合:) この場合、配列の各メンバーにアクセスするための明確で明確な方法が必要な場合は、異なるポインター名は必要ありません。配列のインデックスに int 定数を使用するだけです - (たとえば、C マクロまたは列挙型で宣言されます)

于 2011-11-26T14:55:28.980 に答える
1

あなたの質問を正しく理解できれば、別の配列を使用します

NSMutableArray * arrayOfNewObjects = [[NSMutableArray alloc] init];
for (int n = 0; n < [array count]; n++) {
    //[array objectAtIndex:n] is original object
    [arrayOfNewObjects addObject:[NSMutableString stringWithString:@"hello"]];
}
//[arrayOfNewObjects objectAtIndex:0] would be your first object
于 2011-11-26T14:41:33.323 に答える
1

を使用しないでくださいfor (... in ...)。次の場合は標準のみを使用してください。

NSArray *oldArray;
NSMutableArray *newArray;

for (int i = 0; i < oldArray.count; i++)
{
    UIImageView *view = [UIImageView new];
    view.tag = i;
    [newArray addObject:view];
    [view release];
}

NSLog(@"%@", newArray);

編集:以下のコメントのために更新

于 2011-11-26T14:37:14.630 に答える