【发布时间】:2014-06-11 00:44:12
【问题描述】:
我对 Apple 编程完全陌生,但我认为 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?
【问题讨论】: