2017-10-10 46 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) 
相关问题