2017-10-10 74 views
-4

在viewDidLoad中()我有:夫特4:類型的NSString的值沒有任何構件 '計數'

let text = textField.text! as NSString 
doneButton.isEnabled = (text.count > 0) 

我得到錯誤:

類型的值的NSString沒有成員「計數'

我不明白,因爲之前迅速4它是characters.count,現在在其迅速4它直接宣佈.count,我得到這個錯誤。

有人嗎?

在此先感謝您的幫助

+1

'NSString'有'length' ...(_violá:_ __ [類參考](https://developer.apple.com/documentation/foundation/nsstring)__在Apple Docs中)或直接在Swift中使用'String'並且'characters.count'仍然存在。 – holex

+1

您不需要在此處將文本投射到NSString。使用直接rext作爲String並使用count方法。 – dip

+0

感謝你們的幫助;) – Julien

回答

4

首先,除非編譯器會告訴你不要在斯威夫特使用NSString

其次所有專用方法以檢查是否存在空字符串是isEmpty

let text = textField.text! 
doneButton.isEnabled = !text.isEmpty 

但是 - 由利奧Dabus指出的 - 有一個更聰明的方式(可用的iOS 10+)

doneButton.isEnabled = textField.hasText 
+0

UITextField有一個名爲hasText的屬性 –

+0

感謝您的屬性和解包! – Julien

+0

謝謝,@LeoDabus。我想知道爲什麼'text'屬性是可選的 – vadian

-1
let text = textField.text! as String 

if(text) 
{ 
print(text.count) 
} 
+1

這是不好的,易崩潰的,不安全的swift代碼。如果'textField.text!'是'nil',應用程序會崩潰。使用if-let語句:'if let text = textField.text as?字符串{print(text.count)}' – Hexfire

0

的NSString沒有財產計數,請使用長度

print(text.length) 
相關問題