對於IBOutlet UITextField
,至於內存管理或其他原因,您是如何清除文本值的?清除UITextField的最佳方法
textFieldX.text = nil
或
textFieldX.text = @"";
在Objective-C是可以接受的消息的nil
對象和@""
是一個靜態NSString *
。我不確定每個@""
是否指向內存中的同一個對象,或者是否分配了一堆1字節的以null結尾的字符串。
沒什麼大不了的,只是想我會問社區。謝謝。
對於IBOutlet UITextField
,至於內存管理或其他原因,您是如何清除文本值的?清除UITextField的最佳方法
textFieldX.text = nil
或
textFieldX.text = @"";
在Objective-C是可以接受的消息的nil
對象和@""
是一個靜態NSString *
。我不確定每個@""
是否指向內存中的同一個對象,或者是否分配了一堆1字節的以null結尾的字符串。
沒什麼大不了的,只是想我會問社區。謝謝。
就我個人而言,我會考慮更少的內存使用情況,以及更多關於代碼可維護性的內容。
對我來說,它是有道理的,標籤總是有一個字符串。將來有人可能會嘗試添加標籤值,將其保存在數據庫中,將其包裝在xml中等。在這種情況下,一個空的NSString對我來說更有意義,即0x0。
字符串總是複製到Objective-C中,所以第二個選項很可能是創建另一個字符串,然後指向它。那樣,我認爲你是對的。爲了扮演魔鬼的擁護者,我會假設編譯器優化了選項B來做選項A之類的事情。就我個人而言,我總是會選擇B,因爲它的可讀性更高,只要您想完成的最終操作。
更新:我沒有找到一個方法來完成不同的目標,但你可能有興趣在這個珍聞(從Apple UITextField Docs):
clearButtonMode
控制在標準明確 按鈕出現在文本字段中。
@屬性(非原子) UITextFieldViewMode clearButtonMode
討論
標準清除按鈕被顯示在 文本字段的右側作爲 一種方式,用戶能夠快速除去文本 。此按鈕會根據此屬性的值集 自動出現 。
此屬性的默認值爲 UITextFieldViewModeNever。
我認爲這將允許您設置用戶清除文本字段的功能。
爲了清楚起見,我通常會做textFieldX.text = @"";
。這有助於我記住值應該是一個字符串,並且我可以將它傳遞給所有標準字符串方法。
這是否使佔位符字符串重新出現? – Supertecnoboff 2015-08-23 15:16:08
我可以確認它,@Supertecnoboff – vichle 2015-10-21 14:08:51
我建議你使用nil,因爲我發現當你使用@「」時,佔位符不在中心對齊(如果它必須對齊)。看,我如何更改我的代碼以正確地佔用佔位符。
wordTextField.textAlignment = UITextAlignmentCenter;
//wordTextField.text = @"";
wordTextField.text = nil;
translationTextField.textAlignment = UITextAlignmentCenter;
//translationTextField.text = @"";
translationTextField.text = nil;
我發現使用textField.text = nil;
對我的項目有不良影響。我正在建立一個計算器。
使用上述代碼時,按下清除按鈕後,按下數字不會出現在屏幕上。
textField.text = @"";
適合我。
我說的更多的方法是在viewWillAppear上以編程方式清除文本以編輯對象,如果有意義的話。 – Brenden 2009-07-22 22:58:33