我有幾個UIView子類(按鈕,標籤等)遵循以下安裝模式。我的問題是,爲什麼郵件仍然可以在release
之後發送到UILabel
?將消息發送到發佈的對象?
myLabel = [[UILabel alloc] initWithFrame:someFrame];
[someUIView addSubview:myLabel];
[myLabel release];
myLabel.textAlignment = UITextAlignmentCenter;
// other property changes to myLabel
他們被新的UIView「擁有」,我想,但我不明白爲什麼release
不破壞原來的對象,因而所有的消息吧。我不通過someUIView
的subViews
進行財產更改。我沒有抱怨。我只是想明白爲什麼。
編輯:我應該補充說,這些是實例變量,如果這有所作爲。
完美!謝謝!我如何知道另一種方法何時會隱式調用發佈?有一些我應該知道的清單嗎? (除了查看NSObject的retainCount) – 2011-12-19 00:49:35
釋放一個對象後不要使用它。 – zaph 2011-12-19 00:52:51
簡短的回答是......不用擔心。當然,我碰巧知道'-addSubview:'在對象上執行保留,但這不是必需的。至於'retainCount',就不要打擾。認真。這是一個只會導致瘋狂的實現細節。 – 2011-12-19 00:53:53