Выражение не присваивается ошибка с CGRect

Я пытаюсь создать CGRect имущество.

@property (nonatomic) CGRect myRect;

Затем я установил кадр:

self.myRect = self.frame;
self.myRect.size.height = 10; // Error

Я получаю сообщение об ошибке "Выражение не присваивается". Почему я это понимаю? Я не могу изменить размер CGRect?

2 ответа

Решение

Сделай это так.

_myRect = self.frame;
_myRect.size.height = 10;

self.myRect.size.height = 10 эквивалентно [ self myRect ].size.height = 10

Вы должны прочитать свойство CGRect, изменить его и записать обратно:

CGRect r = [ self myRect ] ;
// modify r here
[ self setMyRect:r ] ;

или же:

CGRect r = self.myRect ;
// modify r here
self.myRect = r ;
Другие вопросы по тегам