Можно ли ссылаться на переменную со строкой и int? - PullRequest
2 голосов
/ 18 мая 2011

Можно ли ссылаться на переменную с помощью строки и целого числа, например:

    int number1;

    int j = 1;

    @"number%i", j = 3; //Hope this makes sense..

Приведенный выше код дает мне предупреждения и не работает, как это можно сделать.

Я тоже пробовал это, но это не работает (по вполне очевидным причинам):

    int j = 1;

    NSString *refString = [NSString stringWithFormat:@"number%i", j];

    refString = 3;

Я действительно борюсь с этим, я знаю, как это сделать в Javascript, но не в Obj-C, это возможно?

Ответы [ 2 ]

3 голосов
/ 18 мая 2011

Это анти-паттерн Я называю Массив Бедного. Лучший способ сделать это - использовать правильную коллекцию, такую ​​как массив, а не набор переменных, которые тайно связаны. Если все сделано правильно, код с массивом обычно будет намного короче и чище.

1 голос
/ 18 мая 2011

Из того, что я могу сделать вывод, вы пытаетесь установить / получить различные переменные на основе значения j.

Вы можете использовать словарь для этой цели:

NSMutableDictionary *numbers = [NSMutableDictionary dictionary];
int j = 1;
[numbers setObject:[NSNumber numberWithInt:3] forKey:[NSNumber numberWithInt:j]];

А затем получить:

[[numbers objectForKey:[NSNumber numberWithInt:j]] intValue];

Это немного многословно, но вы можете упростить это, создав небольшой класс.

...