我完全没有苹果编程的经验,但在了解 Swift 后,我觉得它很有意思。我试图在命令行上制作一个简单的猜数字游戏,但我无法将整数转换为字符串。我已经尝试在互联网上搜索了很多方法,但我不知道哪里出了问题。我不想直接将用户输入作为整数接受,我宁愿将其从字符串转换为整数以更轻松地处理错误(就像在 Python 中那样)。这是我所做的:
运行后,它告诉我:
import Foundation
// Get Input
let standardInput = NSFileHandle.fileHandleWithStandardInput()
// Convert to int function
func convertToInt(guess: String) -> Int {
var num: Int = guess.toInt()! // It tells me "Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)" on this line and the program stops
return num
}
println("Please enter your name.")
// Get the user's name
let data = standardInput.availableData
var name = NSString(data: data, encoding: NSASCIIStringEncoding)
println("Hello \(name)")
println("Please enter a number and I will try to guess it.")
// Get the user's number
let data2 = standardInput.availableData
var number = NSString(data: data2, encoding: NSASCIIStringEncoding)
// Call the function to convert the number to an int
var newnum = convertToInt(number)
println(newnum)
运行后,它告诉我:
fatal error: Can't unwrap Optional.None (lldb)
在调试区。我不知道如何解决这个问题。有没有办法直接从NSString
转换成Int
?
NSString
转换为Int
?