Создание объектов с разными именами в массиве с использованием цикла for - PullRequest
0 голосов
/ 26 ноября 2011

Я использую оператор for для перечисления всех объектов в массиве.Для каждого объекта в массиве я хочу сделать так, чтобы он каждый раз создавал разные объекты, чтобы я мог ссылаться на разные, например, в массиве есть 5 строковых объектов.Я использую оператор for для перечисления каждого объекта, и каждый раз, когда я хочу создать строку nsmutable, содержащую текст @ "hello"

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 объектов перечисляют массив и каждый раз создают новый объект с отдельным именем, чтобы я мог ссылаться на него: объект1 объект2 объект3 объект4 объект5

обновление:

под массивом я имею в виду NSArray

моя проблема в том, что я добавляю uiimageview ...

Ответы [ 3 ]

2 голосов
/ 26 ноября 2011

Я не уверен, что получу ваш вопрос ... Объекты массива уже однозначно идентифицируются по их индексу.Зачем вам нужны разные имена (NSString * указатели) ???

Это может быть актуально в случае, когда вы уже знаете, сколько строк в этом массиве и что представляет каждая из них.(например, массив строк, представляющих некоторые параметры конфигурации для программы ... если кто-то думает о лучшем примере :) В этом случае, если вы хотите иметь ясный и понятный способ доступа к каждому члену массива, выне нужны разные имена указателей, просто используйте константы int для индексов массива - (объявлено в макросах C или, например, в перечислении)

1 голос
/ 26 ноября 2011

Если я правильно понимаю ваш вопрос, я бы использовал другой массив

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
1 голос
/ 26 ноября 2011

Не используйте 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);

РЕДАКТИРОВАТЬ: Обновлено для комментария ниже

...