2015-07-13 154 views
0

我想創建一個簡單的用戶輸入,但我在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()! –

回答

0

由於字符串包含換行符,因此轉換爲Int會失敗。您可以使用它來清理:

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