Я хочу иметь изменяемый массив с примитивами в obj-c (селекторы). Каков рекомендуемый способ сделать это? NSArray
, и те могут содержать только объекты.примитивные массивы объектных примитивов
ответ
Чтобы обернуть селектор или любой другой примитивный тип, вам необходимо использовать NSValue
. В Cocoa SEL есть какой-то указатель, поэтому вы можете использовать [NSValue valueWithPointer:whatever]
для его построения и [value pointerValue]
, чтобы получить его. Или, в общем, вы можете использовать [NSValue valueWithBytes:&whatever objCType:@encode(SEL)]
; это работает для любого типа.
Спасибо, я не знал о NSValue. – quano
Кроме управления массив C-стиль самостоятельно (что, безусловно, не самый лучший вариант, IMO), единственным вариантом является использование NSArray
/NSMutableArray
и хранить номера с помощью NSNumber
. Это немного более раздражает, чтобы получить значение, чем с фактическим числовым типом, но он освобождает вас от управления памятью массива самостоятельно.
На самом деле, я хочу хранить SEL. Какой тип, действительно? – quano
Поскольку примитивные типы обычно являются просто цифрами (будь то целыми или с плавающей запятой) или указателями, в чем проблема с использованием классов, используемых для их переноса для ваших целей? Например, NSMutableArray
от NSNumbers
?
Если вы хотите сохранить массив SEL
объектов, проще всего было бы преобразовать SEL
с до NSString
с помощью функции NSStringFromSelector()
, хранить их в NSMutableArray
, а затем преобразовать их обратно в SEL
с, когда вы тянете их использование с использованием функции NSSelectorFromString()
.
Хм, я полагаю, это сработает. Благодарю. – quano
- 1. Печать Примитивные Массивы в Clojure
- 2. Как создать общие примитивные массивы?
- 3. java: примитивные массивы - они инициализированы?
- 4. Примитивные массивы как общий параметр
- 5. Примитивные массивы в сборниках Java
- 6. Массивы примитивов в java vs C++
- 7. Как читать массивы JavaScript объектных литералов?
- 8. Допустимы ли примитивные массивы в HashMaps?
- 9. Как примитивные массивы реализованы в java?
- 10. Типы примитивов в Java
- 11. Типы примитивных примитивов Java
- 12. Кэш Flush после многопоточного сопоставления записывается в примитивные массивы
- 13. Буферы протокола в Java: мы можем эффективно обрабатывать примитивные массивы?
- 14. JNI, освобождая примитивные массивы, и из исключений памяти
- 15. Объекты Javascript против примитивов
- 16. Правильный способ использования примитивов уровня
- 17. GUI-библиотека для обработки примитивов и массивов/наборов примитивов
- 18. Согласованное использование примитивов и обернутых примитивов
- 19. CoreData - Примитивные аксессоры как свойства?
- 20. Bash Примитивные типы
- 21. Созданный SWIG Lua <--> C++ Wrapper примитивные типы примитивов, переименованные в typedef
- 22. Как я могу включать (константу) примитивные таблицы данных в классе?
- 23. Сравнение вложенных структур данных, содержащих потенциально пустые массивы примитивов с clojure.data/diff
- 24. Наследовать метод для всех объектов, кроме примитивов
- 25. is == Оператор, предназначенный для примитивов, сравнивающих
- 26. Можете ли вы дать мне руку для анализа примитивов с использованием Realm?
- 27. Почему возможно создать коллекцию массива примитивов, но не сбор примитивов
- 28. Преобразование OpenGL примитивов в OpenGLES
- 29. выбор примитивов не работает
- 30. Подсчет примитивов в Neo4j
Duplicates http://stackoverflow.com/questions/1539017/nsarray-with-c-types –