Для того, что вы хотите сделать, основные различия между реализацией java.util.List
и NSArray
:
- Objective-C не имеет "автобокса", поэтому вы не можете просто передать число, подобное 3, в массив и сохранить в нем правильный объект. Вы должны явно обернуть его самостоятельно в экземпляр
NSNumber
, выполнив [NSNumber numberWithInt:3]
- любая реализация
List
может дополнительно реализовывать API .add()
и .remove()
. В Foundation есть подкласс NSArray
, который позволяет изменять его содержимое, который называется NSMutableArray
.
- Objective-C не имеет обобщений, поэтому вы не можете сделать эквивалент
List<String>
Кроме этого, List
и NSArray
очень похожи: каждый является абстрактным, сообщая вам, как вы можете использовать реализующий объект, но не навязывая способ, которым этот объект работает. Например, ArrayList
реализован с использованием массива, но NSArray
динамически выбирает подходящую реализацию на основе содержимого, которое вы пытаетесь использовать.