ios - 从字符串中获取范围

标签 ios swift range ios8 nsrange

我想检查一个字符串是否只包含数字。我遇到了this用 Objective-C 编写的答案。

NSRange range = [myTextField.text rangeOfCharacterFromSet:[NSCharacterSet letterCharacterSet]];
if(range.location == NSNotFound) {
    // then it is numeric only
}

我尝试将其转换为 Swift。

let range: NSRange = username.rangeOfCharacterFromSet(NSCharacterSet.letterCharacterSet())

我遇到的第一个错误是在分配类型 NSRange 时。

无法转换表达式的类型“范围?”输入“NSRange”

所以我删除了 NSRange 并且错误消失了。然后在 if 语句中,

let range = username.rangeOfCharacterFromSet(NSCharacterSet.letterCharacterSet())
if range.location == NSNotFound {

}

我遇到了另一个错误。

“范围?”没有名为“location”的成员

请注意,变量 username 的类型是 String 而不是 NSString。所以我猜 Swift 使用它的新 Range 类型而不是 NSRange

问题我不知道如何使用这个新类型来完成这个。我也没有找到它的任何文档。

有人能帮我把这段代码转换成 Swift 吗?

谢谢。

最佳答案

这是一个如何使用它的例子:

if let range = username.rangeOfCharacterFromSet(NSCharacterSet.letterCharacterSet()) {
    println("start index: \(range.startIndex), end index: \(range.endIndex)")
}
else {
    println("no data")
}

关于ios - 从字符串中获取范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25241188/

相关文章:

ios - 初始化后如何访问自定义 View 属性

swift - 使用 UIStoryboard.instantiateViewController 时,何时为 UIViewController 的自定义属性设置值?

C#:Microsoft.Office.Interop.Excel.Range 的 ID 字段未与 Excel 工作表一起保存

arrays - 如何在 Swift 中从数组中删除元素

swift - swift 附加到自定义对象数组

java - 子字符串导致字符串索引超出范围错误

java - 如何在java中添加自己的数字范围

ios - 在 AVAudioRecorder Session 中查找静音

ios - 我的应用程序一直提供 UILocalNotifications,即使代码中没有

iphone - 这个需要cocos2d吗?