如何在 Xcode 8.2 的游乐场项目中使用 Swift 从用户那里获取输入?

How to get input from user using Swift in playground project in Xcode 8.2?

我正在尝试从 playground 中的用户获取 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()

您可以从 textField 获取 playground 输入,如下所示:

    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

从 playground 获取输入是不可行的,您可以在 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 name = input()
print("name: \(name!)")

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

在上面的程序中,print函数输出Please Enter your favorite programming language。在调试区。语句 let name = readLine() 在调试区等待用户输入。

如果您键入 "Swift" 并按回车键,readLine 函数会将该字符串分配给常量名称并将输出显示为 Your favorite programming language is Swift.

由于 readLine 函数 returns 是一个可选字符串,我们已强制将常量解包为名称!在语句 print("Your favorite programming language is (name!)").

我认为无法在 Xcode 的 Playground 上获得用户输入。

是否可以在与空操场相同的部分“回答”项目。您可以使用“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,输入代码很困难

How it looks during execution