Я здесь немного ...
Я передаю строку функции и в этой функции мне нужно создать массив, чье имя является значением Струна.
Скажите, например: -(void) function : (NSString *) arrayName; //let arrayName = @"foo";
В этой функции мне нужно создать массив с именем «foo» i.e значение переданного параметра.
Может кто-нибудь помочь пожалуйста: |
Заранее спасибо;)динамически создавая имена переменных в объекте-c
ответ
Это невозможно в Objective-C, но вы можете использовать, например. словарь, который отображает строку в массив.
E.g. при условии, что-то вроде следующего свойства:
@property (readonly, retain) NSMutableDictionary *arrays;
... вы можете хранить массив по имени:
- (void)function:(NSString *)arrayName {
NSArray *array = [NSArray arrayWithObjects:@"foo", @"bar", nil];
[self.arrays setObject:array forKey:arrayName];
}
... и доступ к нему так:
NSArray *array = [self.arrays objectForKey:arrayName];
Массивы дон У меня есть имена. Переменные имеют имена, но переменные являются локальными по своей области, поэтому, когда вы покидаете область действия этого метода, переменная с именем «foo» бессмысленна; вы можете назвать переменную, что хотите, и она будет работать нормально. Пример:
- (void) function:(id)whatever {
NSArray * myVariable = [NSArray arrayWithStuff....];
//use myVariable
}
Что вы действительно пытаетесь сделать?
эй спасибо за ваше мнение ... :) На самом деле функция рекурсивная по своей природе; поэтому каждый раз, когда я повторяю его, я хочу иметь возможность создавать новый массив без потери предыдущего ... – Bangdel
@Bangdel, если метод рекурсивный, тогда объект все равно будет существовать в фрейме/области, в которой он был создан , Когда вы выйдете из рекурсивного вызова, объект все равно будет там. –
C - это скомпилированный язык, на котором любые исходные коды (для переменных, функций и т. Д.) Недоступны во время выполнения (за исключением, возможно, отладки, -g). Среда выполнения Objective C добавляет к этому способность искать методы и классы Obj C по именам, но не объектам, ни какому-либо материалу C. Таким образом, вам не повезло, если вы не создадите собственную структуру мини-языка-интерпретатора для ссылки по имени. Множество способов сделать это, но простые языки обычно создают какую-то таблицу переменных, что-то вроде словаря, массива или связанного списка объектов (структур, кортежей и т. Д.), Содержащих имя строки, указатель объекта (возможно, также тип, размер и т. д.).
- 1. Доступ имена переменных динамически
- 2. Динамически определять имена переменных
- 3. Python динамически создает имена переменных
- 4. Динамически ссылаются на имена переменных?
- 5. Stata - динамически определять имена переменных в цикле
- 6. динамически создавать имена переменных в циклах - SPSS
- 7. Настройка writeToFile в объектеC
- 8. , создавая .txt в каталоге переменных
- 9. динамически создавая диаграмму/макет
- 10. динамически создавая таблицу varchar
- 11. Динамически создавая файл .class
- 12. Динамически создавая форму
- 13. Expression.OrElse, динамически создавая условие
- 14. Динамически создавая представления
- 15. Динамически создавая страницы участника
- 16. динамически создавая несколько sharedobject
- 17. Динамически создавая кнопки с javascript
- 18. Динамические имена переменных в Smarty
- 19. PHP изменить имена динамических переменных на статические имена переменных
- 20. Переменные кучи/стека в объектеC
- 21. динамические имена переменных массива
- 22. Динамически определять имена переменных в соответствии со строкой в Fortran
- 23. Динамические имена переменных в Java
- 24. Динамические имена переменных javascript MVC
- 25. имена функций в переменных
- 26. Есть ли возможность динамически генерировать имена переменных в Java?
- 27. Почему динамически типизированные языки хранят имена переменных в виде строк?
- 28. Можно ли динамически использовать имена переменных в SASS каждый цикл?
- 29. Строчные имена классов, имена переменных
- 30. динамически создавая linq с mongodb
Зачем вам нужно иметь переменную NSArray с определенным именем? –