self.messageView.frame.size.height = self.messageView.frame.size.height + notesHeight;
notesHeight是一個CGFloat。爲什麼XCode會說下列表達式不可分配?
self.messageView.frame.size.height = self.messageView.frame.size.height + notesHeight;
notesHeight是一個CGFloat。爲什麼XCode會說下列表達式不可分配?
您能分配框架,而不是框架
CGRect temp = self.messageView.frame;
temp.size.height = temp.size.height + notesHeight;
self.messageView.frame = temp;
注意:一個框架沒有屬性,它有字段。 –
點語法的領域只是語法糖。
在這種情況下,此代碼:
self.messageView.frame.size.height = 0;
掉落點語法,這會導致混亂,某些情況下,究竟發生了什麼,它看起來像這樣:
[[self messageView] frame].size.height = 0;
在C而言,就像這樣:
ViewGetFrame(GetMessageView(self)).size.height = 0;
你不能設置一個函數結果結構的字段this辦法。 (即使你可以,也不會影響到原來的,但只有一個副本。)
價值維基百科的文章,對分配的部分,其可以解釋這一:
self.messageView.frame.size.height可能是隻讀的嗎? –