Intereting Posts
IOS: сделать текущий текст «текущей новостной линией на ТВ»? Google Места – текущие места: внутренняя ошибка в библиотеке API Places itunesconnect, размер приложения после добавления досуга имеет смысл Создание многозонного табличного представления / коллекции IOS Физика SpriteKit: Как создать спрайт-плеер, следуя (наклонной) земле прохождение закрытия в addTarget в Swift iOS – определение высоты клавиатуры программного обеспечения IOS OpenGL gpus_ReturnGuiltyForHardwareRestart Ошибка Нарисуйте изображение в mac os Как сделать гладкие интерфейсы iOS? Как сохранить ось x видимой, когда я показываю только интервал по оси y, используя Core-Plot Как рассчитать уровень RPG-уровня в процентах Как настроить параметры системы, чтобы одновременно загружать более смоделированные устройства? Почему shouldStartLoadWithRequest не загружает мою версию / amp в webview и делает это в сафари? Представление модального представления, когда приложение становится активным

Перегрузка оператора Objective-C iOS6 (const id )

я знаю о новых литералах и аксессуарах, например

id obj = [dict objectForKey:@"keyStr"]; 

эквивалентно

 id obj = dict[@"keyStr"]; 

я заметил несколько изменений в основных классах, например

 + (id)dictionaryWithObjects:(const id [])objects forKeys:(const id [])keys count:(NSUInteger)cnt; 

но что такое (const id [])?

как я могу сделать свой собственный класс с помощью оператора []

это, по сути, перегрузка оператора, что, по моему мнению, невозможно в ObjectiveC, будет возможно перегрузить другие операторы, такие как +, /, – и т. д.

Перегрузка оператора возможна в C ++, означает ли это, что я могу использовать класс Objective-C ++?

const id [] – это просто массив C объектов const Objective-C. Этот метод обрабатывает построение NSDictionary из словарного литерала – @{ @"a": @1 } . Это не то, что вы ищете.

Для доступа к объекту с помощью ключа X внутри объекта something с помощью something[X] является подписью .

Если вы хотите, чтобы ваш класс поддерживал подписку, вы реализуете - (id)objectAtIndexedSubscript:(NSUInteger)idx если хотите взять целые числа и - (id)objectForKeyedSubscript:(id)key если вы хотите взять объекты. Для получения дополнительной информации см. Документацию clang («LLVM compiler») этой функции .

Соответствующие методы для сеттеров: - (void)setObject:(id)anObject atIndexedSubscript:(NSUInteger)index и - (void)setObject:(id)object forKeyedSubscript:(id<NSCopying>)aKey .

const id []

это просто объявление типа массива const id .

Это просто эквивалент:

const int a[]

для типа id .