лучший способ / любой способ указать типизированный NSMutableArray - PullRequest
0 голосов
/ 24 ноября 2011

Я портирую приложение с Android Java на iPhone.

В Android я много использовал Lists / ArrayLists.

На iPhone я планирую использовать NSMutableArray.

Есть ли способ определить или даже указать тип объектов в NSMutableArray.

Я знаю, что можно поместить любой типобъекта, но я хотел бы сделать его более видимым и прозрачным.

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

Ответы [ 3 ]

3 голосов
/ 24 ноября 2011

Непонятно, что именно вы спрашиваете.

Если вы просто хотите прояснить для читателя, какого рода объекты находятся в массиве, просто назовите его соответствующим образом (вы не можете принудительно применитьэто на уровне языка):

NSMutableArray * arrayOfMyClasses;

Если, с другой стороны, вы хотите узнать тип объекта, который вы читаете из массива, тогдаВы можете получить базовый класс, используя:

[obj class]

Или легко сравнить с другими типами классов:

if ([obj isKindOfClass:[MyClass class]) { ... }

Тим

2 голосов
/ 24 ноября 2011

Я предполагаю, что вы ищете шаблон в Objective C. К сожалению, он не доступен в Objective C (по крайней мере, напрямую).

Вы можете найти этот вопрос StackOverflow.com интересным

1 голос
/ 24 ноября 2011

Вы можете указать только тип.

for(id obj in _assets) {
    NSString *className = NSStringFromClass([obj class]);
    NSLog(@"%@", className);
}

Массивы - это упорядоченные коллекции объектов любого типа.Например, объекты, содержащиеся в массиве на рисунке 1, могут представлять собой любую комбинацию объектов cat и dog, и, если массив является изменяемым, вы можете добавить больше объектов dog.Коллекция не должна быть однородной.

Темы программирования коллекций - Массивы: упорядоченные коллекции

...