Таким образом я получил следующий код функцию, чтобы прочитать строку ввод в консоли:Проблемы с моим кодом пытается прочитать двойную
func input() -> String {
let keyboard = NSFileHandle.fileHandleWithStandardInput()
let inputData = keyboard.availableData
return NSString(data: inputData, encoding:NSUTF8StringEncoding) as! String
}
Проблема, которую я имею интересную один. Я пытаюсь получить результирующий ввод строки и использовать его как double.
//Accept user-input which is string then case into Double value for cakeLength
print("Please enter the length of the cake (in): ")
var userText = input()
cakeLength = Double(userText)!
По какой-то нечетной причине Xcode сказал мне развернуть часть Double (userText). Тем не менее, когда я пытаюсь запустить код на консоли, я получаю ошибку во время выполнения, которая гласит: «фатальная ошибка: неожиданно обнаружена нуль при развертывании необязательного значения»
Что я делаю неправильно? Я очень новичок в программировании с Swift.
Привет, спасибо, что ответили. Мне не разрешено использовать функцию readLine(), иначе я бы это сделал. Что касается развертывания, он был инициирован в рамках автоматической отладки Xcode. – Linuxn00b
Почему вам не разрешено использовать 'readLine()'? – tebs1200
Во-вторых, компилятор не просит вас развернуть двойной «по какой-то нечетной причине». Преобразование строки в double может не работать. Рассмотрим «Double (« hello »)' ... Будет ли это работать? Нет. Поэтому построение «Double» из строки «String» возвращает необязательный параметр, так как не может быть действительного двойника. Я бы предложил посмотреть на строку и посмотреть, можно ли ее преобразовать в двойную. – tebs1200