我相信我必須釋放一個對象,如果我用關鍵字init,alloc,copy或move創建它,我相信。我可以使用不使用此關鍵字的代碼創建對象,所以我想我不必將它們釋放正確?所以就拿這個代碼:何時發佈對象
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self
action:@selector(aMethod:)
forControlEvents:UIControlEventTouchDown];
[button setTitle:@"Hello" forState:UIControlStateNormal];
button.frame = CGRectMake(40.0, 200.0, 170.0, 40.0);
[self.view addSubview:button];
,因爲我沒有使用任何在我的代碼我不應該釋放它的權利這些關鍵字的?那麼這個對象何時被釋放?我對記憶管理的東西有點困惑。
如果我保留一次,我需要稍後再發布它嗎? (以防我以後需要使用它),如果我保留兩次,我需要釋放它兩次?當我學習objective-c時,我閱讀了一個教程,解釋了這樣的內容... –
正確 - 一旦對象的保留計數達到零,對象的內存就會釋放。每次保留對象時,保留計數都會增加。每次釋放對象時,保留計數都會遞增。自動釋放的對象只是系統稍後自動釋放的對象。如果你沒有保留它,它的保留計數將是1,因此只要系統釋放它就會被釋放。 –
是的,你知道了! – mattacular