Я дал оценку как Джеймсу, так и Чаку, поскольку оба ответа верны, учитывая отсутствие контекста.
Мета-вопрос Что вы пытаетесь сделать?
Если вы просто пытаетесь показать список городов, а не строите модель данных, тогда ответ Чака вполне уместен.3000 городов в NSString в NSArray - это на самом деле не так уж и много.
Однако, держу пари, вы делаете больше, чем это.Я был бы удивлен, если бы вы не создавали какую-то модель данных, в которой города связаны с моделью данных, даже небольшую ее часть.В этом случае ответ Джеймса верен;CoreData - это то, что нужно, так как он будет быстрым, легко масштабируемым и предлагает вам инструменты более высокого уровня для моделирования и взаимодействия с вашими данными.