Swift 将文本字段字符转换为int

Swift 将文本字段字符转换为int,swift,Swift,我已经知道您可以通过以下方式将文本字段转换为int: var textNumber : Int = Int(numbers.text)! 问题是,我正在尝试转换每个字符,这样做: for number in numbers.text.characters { let number : Int = Int(number) } 但是当我尝试这样做时,无法使用类型为“(String.CharacterView.\u Element)”的参数列表调用类型为“Int”的初始值设定项那么我该如

我已经知道您可以通过以下方式将文本字段转换为int:

 var textNumber : Int = Int(numbers.text)!
问题是,我正在尝试转换每个字符,这样做:

for number in numbers.text.characters
{
    let number : Int = Int(number)
}

但是当我尝试这样做时,
无法使用类型为“(String.CharacterView.\u Element)”的参数列表调用类型为“Int”的初始值设定项
那么我该如何实现呢?我尝试了很多不同的方法,但我无法将字符转换为int。

您必须先将字符转换为字符串:

for c in numbers.text.characters {
    if let digit = Int(String(c)) {
        print(digit)
    } else {
        // Invalid input
    }
}


(它会无声地删除非数字字符)。

提示:Character->String->int您的提示更像是一个答案。哈哈,我原以为斯威夫特可以自己处理这件事。如果你想回答这个问题,我会投赞成票@Adrian Swift避开了隐式的行为,如C和C++。这是可以做到的,但这是故意避免的。@MartinR我将把你的答案留给我–平面图(:)的建议非常有用。我必须等待4分钟才能接受答案,但现在我有一个疑问,我在哪里可以找到这个“层次结构”?我永远也不会知道你必须先将字符转换成字符串,然后再转换成整数。@Adrian:这个过程已经有了完整的文档。你会发现Int可以从字符串初始化(但不能从字符初始化)。@Adrian:你也可以在Xcode源代码编辑器中的
Int
import Swift
上“选项单击”来探索Swift世界。
let allDigits = numbers.text.characters.flatMap { Int(String($0)) }