作者otima ()
看板MacDev
標題Re: [問題] 請問關於navigation bar??
時間Wed Feb 23 01:10:27 2011
※ 引述《zonble (zonble)》之銘言:
: ※ 引述《valda (valda)》之銘言:
: : 請問如何在navigation bar 上加上一個textfield
: : 感謝
: : 試了很多次都不太行
: UITextField *aTextField = [[UITextField alloc] initWithFrame:CGRectMake(0.0, 0.0, 200.0, 40.0)];
: aTextField.borderStyle = UITextBorderStyleRoundedRect;
: aTextField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
: aTextField.placeholder = @"Type something here";
: self.textField = [aTextField autorelease];
: self.navigationItem.titleView = self.textField;
想借用此文章問一下zonble前輩一個小問題,是關於autorelease的。
以上例來說,如果第一行寫的是
UITextField *aTextField = [[[UITextField alloc] initWithFrame...] autorelease];
第五跟第六行寫的是
self.textField = aTextField;
self.navigationItem.titleView = aTextField; (或 _textField)
這兩種寫法的差距有高下之分嗎?
因為我自己是都使用第二種寫法,很想知道只靠這招是否有問題?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.43.99.52
1F:→ zonble:沒什麼差別 :p 02/23 01:26
2F:→ markzog21:我覺得會不會有可能還沒執行到第5第6行就先release掉了? 02/23 20:02
3F:→ uranusjr:不可能, autorelease 是在事件迴圈的最後做的, 不會方法 02/23 21:19
4F:→ uranusjr:跑到一半突然發作... 02/23 21:19
5F:→ zonble:這整段 code 都還沒有離開 runloop 02/23 22:36
6F:→ markzog21:怎麼判斷程式是否還在runloop裡面?之前有寫過從A view 02/24 15:58
7F:→ markzog21:進到B view的時候就出現了release掉元件的BUG。最後解決 02/24 15:59
8F:→ markzog21:是把很多變數都做retain,記憶體管理那部份就很糟。 02/24 15:59