2016-05-30 2 views
0

В Objective-C эквивалент List<Products> cartProduct = new ArrayList();. Я использовал NSMutableArray, но это отличается от Java ArrayList.Эквивалент Java ArrayList в Objective-C

+2

Как это отличается? Что вы пытаетесь сделать, что 'NSMutableArray' не может? – Arc676

+0

Я хочу сделать сборку с NSMUtableArray, как это возможно. – Sandeep

+0

'NSMutableArray arr = [NSMutableArray array];' then '[arr addObject: thing];' Это не то, что вы ищете? – Arc676

ответ

2

Мне кажется, что Java ArrayLists использовать дженерики.

Объектив-C не имеет истинной поддержки дженериков. (Swift does. Вы можете использовать Swift вместо этого.)

Классы сбора Objective-C (NSArray и NSMutableArray) являются гетерогенными. Они могут содержать смесь объектов разных типов. Однако последнее дополнение к языку добавляет очень тонкий слой общей поддержки.

Вы хотите использовать синтаксис, как это:

NSMutableArray <Products *> *cartProduct; 

Этот синтаксис только добавляет во время компиляции проверки типов. Он сообщает компилятору, что cartProduct является изменяемым массивом, который должен содержать только объекты типа Products, поэтому вы получаете предупреждения, когда вы добавляете/извлекаете объекты из массива других типов, но в процессе выполнения массив все равно будет принимать объекты любого типа.

Я нашел this link, объясняя больше о «легкой» поддержке Objective-C для дженериков. Это кажется довольно ясным и хорошо написанным.