Сам вопрос свидетельствует о непонимании хотя бы терминологии.
Свойство - это интерфейс, состоящий из двух (или одного для только для чтения) методов, обнародованных объектом, а именно методов getter и setter, в данном случае:
- (MyStruct) myStruct;
- (void) setMyStruct: (MyStruct) newMyStruct;
Нет смысла говорить о «захвате адреса имущества».
Вы можете взять адрес переменной экземпляра (ivar). В этом случае у вас есть ивар с именем mystruct, и вы можете взять его адрес с помощью &mystruct
в методе MyClass. Поскольку он помечен @protected
(по умолчанию), вы можете взять его адрес в подклассе, используя &self->mystruct
. Если вы отметите его @public
, то вы можете взять его адрес, используя &myobj->mystruct
. Это ужасная идея, и вы должны действительно переосмыслить это, но вы могли бы сделать это.
Если вы просто хотите, чтобы адрес ивара использовался для кратковременных целей (например, если MyStruct был большим), вы могли бы сделать это, но это было бы очень необычно, и вам лучше было бы написать метод с явным именем как:
- (MyStruct*) getAddressForSettingMyStruct;
и если это только для чтения, еще лучше использовать const MyStruct *.