Re: [問題] 請問關於navigation bar??

看板MacDev作者時間14年前 (2011/02/23 01:10), 編輯推噓0(008)
留言8則, 3人參與, 最新討論串3/4 (看更多)
※ 引述《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

02/23 01:26, , 1F
沒什麼差別 :p
02/23 01:26, 1F

02/23 20:02, , 2F
我覺得會不會有可能還沒執行到第5第6行就先release掉了?
02/23 20:02, 2F

02/23 21:19, , 3F
不可能, autorelease 是在事件迴圈的最後做的, 不會方法
02/23 21:19, 3F

02/23 21:19, , 4F
跑到一半突然發作...
02/23 21:19, 4F

02/23 22:36, , 5F
這整段 code 都還沒有離開 runloop
02/23 22:36, 5F

02/24 15:58, , 6F
怎麼判斷程式是否還在runloop裡面?之前有寫過從A view
02/24 15:58, 6F

02/24 15:59, , 7F
進到B view的時候就出現了release掉元件的BUG。最後解決
02/24 15:59, 7F

02/24 15:59, , 8F
是把很多變數都做retain,記憶體管理那部份就很糟。
02/24 15:59, 8F
文章代碼(AID): #1DO-u6jL (MacDev)
文章代碼(AID): #1DO-u6jL (MacDev)