Как получить вход от пользователя с помощью Swift в игровой проект в Xcode 8.2?

Я пытаюсь получить динамический ввод от пользователя на площадке для ios, но он не работает. Я попробовал следующий код, но он не работал.

import Foundation
import UIKit
func input() -> String {
    var keyboard = FileHandle.standardInput
    var inputData = keyboard.availableData
    var strData = NSString(data: inputData, encoding: String.Encoding.utf8.rawValue)!

    return strData.trimmingCharacters(in: NSCharacterSet.newlines)
}

input()

6 ответов

Решение

Получить вход с игровой площадки невозможно, вы можете сделать это в проекте XCode, используя:

print("Please enter your name")
var name = readLine()
print("name: \(name!)")

Или же:

func input() -> String {
   let keyboard = FileHandle.standardInput
   let inputData = keyboard.availableData
   return String(data: inputData, encoding: .utf8)!
}

print("Please enter your name")
var nmae = input()
print("line: \(name)")

Вы можете получить информацию о вашей игровой площадке из textField следующим образом:

    import PlaygroundSupport
    import UIKit

    class V: UIViewController {
        var textField = UITextField(frame: CGRect(x: 20, y: 20, width: 200, height: 24))
        override func viewDidLoad() {
            super.viewDidLoad()
            view.addSubview(textField)
            textField.backgroundColor = .white
            textField.delegate = self
        }
    }
    extension V: UITextFieldDelegate {
        func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
            // Do stuff here
            return true
        }
    }
    let v = V()
    v.view.frame = CGRect(x: 0, y: 0, width: 300, height: 300)
    PlaygroundPage.current.liveView = v.view
    PlaygroundPage.current.needsIndefiniteExecution = true

Я не думаю, что можно получить ввод пользователя на площадку Xcode.

Можно ли читать ввод с клавиатуры на детской площадке?

НЕТ.

Чтобы поэкспериментировать с такими функциями ввода с клавиатуры, какreadLine(), создайте проект macOS > Command Line Tool и запустите его в Xcode. Вы сможете писать в консоли Xcode.

print("Please Enter your favorite programming language", terminator: ".") let name = readLine() print("Your favorite programming language is \(name!).")

В вышеприведенной программе выводится функция печати. ​​Пожалуйста, введите ваш любимый язык программирования. в области отладки. Оператор let name = readLine() ожидает ввода пользователя в области отладки.

Если вы наберете "Swift" и нажмете ввод, функция readLine назначит эту строку постоянному имени и отобразит вывод, поскольку ваш любимый язык программирования - Swift.

Поскольку функция readLine возвращает необязательную строку, мы принудительно развернули константу как имя! в выписке выведите ("Ваш любимый язык программирования (имя!)").

Можно ли проект "Ответить" в одном разделе с пустой площадкой. Вы можете использовать методы "ask()" и "show()".

Например:

func square(num: Double) -> Double {
    return num * num
}

show("Please type a number to square it:")
var sqrt = askForNumber()
show("Result: \(square(num: Double(sqrt)))")

Извините, я пишу на iPad и сложно вводить код.

Как это выглядит при исполнении

Другие вопросы по тегам