Создание нескольких нумерованных переменных на основе int

Как создать ряд переменных NSDictionary используя подсчет массива?

Это в основном то, что я придумал, но я не уверен, как сделать эту работу с синтаксисом Objective-C. doesntContainAnotherNSArray . Я хочу, чтобы имена словарей использовали текущее значение loopInt .

 int *loopInt = 0; while (doesntContainAnother.count <= loopInt) { NSMutableDictionary *[NSString stringWithFormat:@"loopDictionary%i", loopInt] = [[[NSMutableDictionary alloc] init] autorelease]; [NSString stringWithFormat:@"loopDictionary%i", loopInt] = [NSDictionary dictionaryWithObject:[array1 objectAtIndex:loopInt] forKey:[array2 objectAtIndex:loopInt]]; loopInt = loopInt + 1; } 

2 Solutions collect form web for “Создание нескольких нумерованных переменных на основе int”

Создайте изменчивый массив и цикл до тех пор, пока вы не достигнете количества исходного массива, создавая словарь и добавляя его к изменяемому массиву на каждой итерации.

Ваш код должен выглядеть так.

 NSMutableArray *dictionaries = [[NSMutableArray alloc] init]; for (int i = 0; i < doesntContainAnother.count; i++) { [dictionaries addObject:[NSMutableDictionary dictionaryWithObject:[array1 objectAtIndex:i] forKey:[array2 objectAtIndex:i]]]; } 

Подход создания переменных с числами в конце их имен является антипаттерном и даже не возможен в Objective-C. Это эквивалентно массиву, но clunkier.

Вам нужно создать изменяемый массив, а затем поместить объекты в массив. Вы не можете создать переменную с тем же именем, что и содержимое строки, как вы это делали. Например:

 NSMutableArray *arr = [[NSMutableArray alloc] initWithCapacity:[doesntContainAnother count]]; int i = 0; // Note: type is int, not int* for (i = 0; i < [doesntCountainAnother count]; i++) { [arr addObject:[NSMutableDictionary dictionary]]; } // Later... NSMutableDictionary *d1 = [arr objectAtIndex:3]; 

Или если вы хотите вытащить их из списка по имени:

 NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithCapacity:[doesntCountainAnother count]]; int i = 0; for (i = 0; i < [doesntContainAnother count]; i++) { [dict setObject:[NSMutableDictionary dictionary] forKey:[NSString stringWithFormat:@"loopDictionary%d", i]]; } // Later... NSMutableDictionary *d1 = [dict objectForKey:@"loopDictionary3"]; 

Но первый путь, вероятно, самый простой.

  • В чем смысл ключевого слова var?
  • Как поместить переменную внутри строки в Python?
  • Какова область действия переменной, инициализируемой в выражении if?
  • Разница между статической, автоматической, глобальной и локальной переменной в контексте c и c ++
  • Как установить переменные в сценариях HIVE
  • Неинициализированные переменные и члены в Java
  • Будет ли использование «var» влиять на производительность?
  • Динамическое создание или ссылка переменных в Sass
  • Невозможно изменить ошибку возвращаемого значения c #
  • Почему имена переменных не начинаются с цифр?
  • Легко установить «эту» переменную?
  • Interesting Posts
    Давайте будем гением компьютера.