Я пытаюсь дать значение ключа NSDictionary для CGSize, и XCode дает мне эту ошибку. Мой код:Элемент коллекции типа «CGSize» не является объектом Objective-C
NSArray *rows = @[
@{@"size" : (CGSize){self.view.bounds.size.width, 100}
}
];
Почему я могу исправить ошибки здесь? Если его невозможно сохранить CGSize в dict, то какой альтернативный подход?
EDIT: теперь получает "Используемый тип 'CGSize' (он же 'структура CGSize'), где арифметика, указатель, или вектор типа требуется" ошибка с этим кодом:
NSDictionary *row = rows[@0];
CGSize rowSize = [row[@"size"] CGSizeValue] ? : (CGSize){self.view.bounds.size.width, 80};
Это действительно позор, вы не можете поставить произвольную С-структуру в Objective-C объекта, используя новый синтаксис литерала. Единственная реальная трудность, которую я видел, - это разобраться с селекторами. –
Как назначить блок как значение, возвращающее CGSize? Похоже на «Лямбду» в Python – zakdances
@yourfriendzak: Это кажется немного абсурдным. –