对于IBOutlet UITextField,清除文本值的方式是否与内存管理或其他原因有关?
textFieldX.text = nil或
textFieldX.text = @"";在objective-c中,消息传递nil对象是可接受的,而@""是静态NSString *。我不确定是否每个@""都指向内存中的同一个对象,或者它是否分配了一串1字节的以null结尾的字符串。
没什么大不了的,我只是想问问社区。谢谢。
发布于 2009-07-22 22:39:51
字符串总是复制到Objective-C中,所以第二个选项很可能是创建另一个字符串,然后指向它。从那方面来说,我认为你是对的。
为了扮演魔鬼的倡导者,我假设编译器会优化选项B,以执行类似选项A的操作。就我个人而言,我总是选择选项B,因为就您想要完成的最终操作而言,它更具可读性。
更新:我没有找到以不同的方式实现你的目标的方法,但你可能会对这个花边新闻感兴趣(来自Apple UITextField Docs):
clearButtonMode
控制标准清除按钮何时出现在文本字段中。
@property(非原子) UITextFieldViewMode clearButtonMode
讨论
标准的清除按钮显示在文本字段的右侧,作为用户快速删除文本的一种方式。此按钮将根据为此属性设置的值自动显示。
此属性的默认值为UITextFieldViewModeNever。
我认为这将允许您为用户设置清除文本字段的功能。
https://stackoverflow.com/questions/1168680
复制相似问题