Swift 将文本字段字符转换为int
我已经知道您可以通过以下方式将文本字段转换为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”的初始值设定项那么我该如
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)) }