Тип класса в NSMutableArray [дубликат]

Возможный дубликат:

Есть ли способ принудительного набора на NSArray, NSMutableArray и т. Д.? '

Я программист Java и яm, начиная с Obj-C, в Java я могу создать изменяемый массив с определенным типом класса, как показано ниже:

ArrayList list;

в Obj-c я знаю NSMutableArray, но я неЯ не знаю и не нашел, как определить тип класса в нем.

Есть способ сделать это с этим или другим классом без NSMutableArray, который может сделать это?

Большое спасибо.

 vikingosegundo26 окт. 2012 г., 21:48
эта тема может быть полезна:stackoverflow.com/questions/8190530/... Обратите внимание, что я опубликовал 2 ответа, второй из которых показывает подход, в котором массив может выполнить тестирование перед добавлением.
 ademar11119026 окт. 2012 г., 21:57
@vikingosegundo Хорошее решение :), я еще не тестировал его, но кажется хорошим кодом, но лучше приспособиться к стилю языка, чтобы он выглядел как Java.
 ademar11119026 окт. 2012 г., 21:43
@crypticcoder хорошо, ясделаю это.
 CRD26 окт. 2012 г., 21:48
Objective-C не поддерживает параметризованные типы напрямую. Однако вы можете закодировать что-то близкое себе, смотритеNSMutableArray - заставляет массив содержать только определенный тип объекта.
 SayeedHussain26 окт. 2012 г., 21:42
Вопросы, которые вы задаете, не ясны. Не могли бы вы рассказать подробнее?
 Marko Topolnik26 окт. 2012 г., 21:43
OP хочет параметризованный массив в Objectve C.
 ademar11119026 окт. 2012 г., 21:52
@vikingosegundo очень круто, яЯ проверю это, но, вероятно, я не буду использовать в своем проекте, потому что я хочу использовать нативный класс.
 ademar11119026 окт. 2012 г., 21:44
@MarkoTopolnik точно :)
 ademar11119026 окт. 2012 г., 21:47
@ Калеб, извини, яисправлю
 vikingosegundo26 окт. 2012 г., 21:54
Я также не использую его в реальном мире :), как я писал в первом ответе: если есть необходимость ограничить массив определенным типом, скорее всего, ваша архитектура содержит ошибки.
 Caleb26 окт. 2012 г., 21:46
Тот'будуизменчивый массив, а неmultable.

Ответы на вопрос(2)

Вы найдете это гораздо меньше неприятностей, чем в Java, потому что вы неЧтобы вызвать метод, нужно опускаться. В этом отношении цель C больше похожа на JavaScript.

Решение Вопроса

Какао / Objective-C не делаетПредлагаю типизированные коллекции вот так. Все объекты в коллекции должны наследоваться отNSObject (что в основном все, кроме примитивов и структур), но помимо этого, это 'Вам решать, чтобы понять / управлять тем, что происходит в массиве. Объекты вNSMutableArray представлены в его интерфейсе универсальным типом.id

С точки зрения дизайна коллекции в Какао обычно содержат объекты однородного типа. Имя массива часто используется, чтобы указать, чтовнутри (так же, как в Java), напримерbookTitlesArray или простоbookTitles (то есть строки). Кроме того, с точки зрения абстракции иногда используются легкие классы для "заворачивать" сыройNSMutableArray обеспечить проверку типа в интерфейсе. Как в, новый класс под названиемBookTitleList который предлагал подмножество методов add, lookup, remove и передавал их во внутренний массив после, например, Проверка. Но YMMV в зависимости от ваших потребностей.

 ademar11119026 окт. 2012 г., 22:00
Понятно, что, кажется, необходимо немного лучше понять архитектуру Objectiv-c, она найдет способ сделать это по стандартам языка, но я ценю всех »s внимание!

Ваш ответ на вопрос