在下面的 Swift 代码中,用户选择一个单词并将其输入到文本框中, 现在如果长度少于 3 个字符,如何禁止输入的单词?
func isReal (word: String) -> Bool {
//return true
let checker = UITextChecker()
let range = NSMakeRange(0, word.utf16.count)
let misspelledRange = checker.rangeOfMisspelledWord(in: word, range: range, startingAt: 0, wrap: false, language: "en")
return misspelledRange.location == NSNotFound
}
最佳答案
你可以只添加一个 if
来检查单词是否超过 3 个字符:
func isReal (word: String) -> Bool {
if word.characters.count >= 3 {
//return true
let checker = UITextChecker()
let range = NSMakeRange(0, word.utf16.count)
let misspelledRange = checker.rangeOfMisspelledWord(in: word, range: range, startingAt: 0, wrap: false, language: "en")
return misspelledRange.location == NSNotFound
} else {
return false
}
}
这样,如果 word
小于 3 个字符,它将返回 false
,否则,它将针对 UITextChecker()
进行测试然后分别返回true
或false
编辑:使用 guard
的替代方法:
func isReal (word: String) -> Bool {
guard word.characters.count >= 3 else {
return false
}
//return true
let checker = UITextChecker()
let range = NSMakeRange(0, word.utf16.count)
let misspelledRange = checker.rangeOfMisspelledWord(in: word, range: range, startingAt: 0, wrap: false, language: "en")
return misspelledRange.location == NSNotFound
}
如果不满足guard
语句(即word.characters.count < 3),函数会自动返回false
关于ios - 不允许少于 3 个字符的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46179040/