如何检查一个字符串(例如“apple”)是否包含在
UITextField
中输入的文本(例如“p”或“pp”)。 如果字符串包含 UITextField 的文本,则我想要打印一条消息,例如:“apple 包含 pp”。class youClass: NSObject {
var yourTextFieldName = UITextField()
func someMethod() {
var apple = "apple"
if apple.containsString(self.yourTextfieldName.text!) {
print("apple contains \(self.yourTextfieldName.text!)")
}
}
}
String
:extension String {
@discardableResult
func containsText(of textField: UITextField) -> Bool {
// Precondition
guard let text = textField.text else { return false }
let isContained = self.contains(text)
if isContained { print("\(self) contains \(text)") }
return isContained
}
}
与其仅仅打印结果,它还返回一个Bool
,指示是否在String
中包含textField
的text
。 @discardableResult
属性允许您忽略返回值,而不会生成编译器警告。
您也可以采用反向方法,通过扩展UITextField
来实现:
extension UITextField {
@discardableResult
func textIsContained(in target: String) -> Bool {
// Precondition
guard let text = self.text else { return false }
let isContained = target.contains(text)
if isContained { print("\(target) contains \(text)") }
return isContained
}
}
您可按以下方式使用这些方法:
// Your `UITextField`
let textField = UITextField()
textField.text = "pp"
// String extension:
"apple".containsText(of: textField) // returns `true` and prints "apple contains pp"
// UITextField extension:
textField.textIsContained(in: "apple") // returns `true` and prints "apple contains pp"