用户输入)返回nil

问题描述:

我想创建一个简单的用户输入,但我在SWIFT已经找到了唯一的功能是这个用户输入)返回nil

func input() -> String { 
    var keyboard = NSFileHandle.fileHandleWithStandardInput() 
    var inputData = keyboard.availableData 
    return NSString(data: inputData, encoding:NSUTF8StringEncoding) as String! 
} 

然后我试图转换输入()在这一点上的数学运算的INT(我使用1作为输入)与此

var inputToInt = input().toInt()! 

我得到的只是零,我不知道该怎么办。

+0

它将返回零只有当你的输入()是零。确保它。你在哪里取1作为输入? – iRiziya

+0

最可能的原因是该字符串包含一个尾随的换行符。 –

+0

我在定义函数println(“引入一个数字”)之后执行此操作,然后var inputToInt = input()。toInt()! –

雨燕2.0有一个名为readLine()功能 - 使用它比滚动自己一个更好的主意。

http://swiftdoc.org/swift-2/func/readLine/

由于字符串包含换行符,因此转换为Int会失败。您可以使用它来清理:

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