作者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