Определенно есть некоторые издержки при создании объектов. Для небольшого числа объектов использование структур данных ObjC все еще целесообразно. Если у вас есть большое количество кортежей, я бы управлял ими в массиве Си. Помните, что Objective-C на самом деле является просто C. В Objective-C целесообразно и обычно использовать конструкции C (до некоторой степени; изучение того, где находится эта точка, представляет собой важный этап становления хорошего разработчика Objective-C).
Обычно для такого рода структуры данных я бы, вероятно, создал один объект Objective-C, который управлял всей коллекцией. Таким образом, внешние абоненты увидят интерфейс Objective-C, но внутренние данные будут храниться в более эффективной структуре C.
Если распространен быстрый доступ ко многим кортежам, мой объект коллекции, вероятно, предоставит методы get, аналогичные [NSArray getObjects:range:]
. Методы ObjC, начинающиеся с «get», указывают, что первый параметр является указателем, который будет перезаписан методом. Это обычно используется для высокопроизводительного C-подобного доступа к объектам, управляемым объектом ObjC.
Такой тип структуры данных - именно то, как разработчики ObjC объединяют элегантность и удобство обслуживания ObjC с производительностью и простотой C.