Помните, что свойства - это просто псевдонимы синтаксиса для методов установки и получения.Это:
self.boundingBox = newBox;
Эквивалентно этому:
[self setBoundingBox:newBox];
Причина, по которой вы не можете сделать это:
self.boundingBox.origin.x = minX;
Это потому, что нет возможности позвонитьsetBoundingBox:
, но только попросите его изменить origin.x
, и нет отдельных методов установки, доступных для отдельных частей структуры.Пример в конце вашего вопроса - единственный способ достичь того, что вы пытаетесь, с помощью свойств.
Вы можете забыть о свойствах и сделать это:
boundingBox.origin.x = minX
Этозаписывает непосредственно в текущие объекты boundingBox
переменную экземпляра (при условии, что она существует), но игнорирует метод установки, что может быть нежелательно.