swift toInt()中的用户输入返回nil

swift toInt()中的用户输入返回nil,swift,null,Swift,Null,我试图创建一个简单的用户输入,但我在swift中找到的唯一功能就是这个 func input() -> String { var keyboard = NSFileHandle.fileHandleWithStandardInput() var inputData = keyboard.availableData return NSString(data: inputData, encoding:NSUTF8StringEncoding) as String! }

我试图创建一个简单的用户输入,但我在swift中找到的唯一功能就是这个

func input() -> String {
    var keyboard = NSFileHandle.fileHandleWithStandardInput()
    var inputData = keyboard.availableData
    return NSString(data: inputData, encoding:NSUTF8StringEncoding) as String!
}
然后我尝试将input()转换为一个Int,用于一个数学运算(我使用1作为输入)

var inputToInt = input().toInt()!

在这一点上,我只得到了nil,我不知道该怎么办。

由于字符串包含换行符,所以转换为Int失败。你可以用这个来清理它:

let s = NSString(data: inputData, encoding:NSUTF8StringEncoding) as String!
if s.hasSuffix("\n") {
    return s.substringToIndex(x.endIndex.predecessor())
} else {
    return s
}

Swift 2.0有一个名为
readLine()
的函数-使用它比使用自己的函数要好得多


只有当输入()为nil时,它才会返回nil。一定要弄清楚。在哪里输入1?最可能的原因是字符串包含一个尾随换行符。我是在定义函数println(“引入一个数字”)然后var inputPoint=input().toInt()之后执行此操作的!