Ios 类型为'的值;任何';没有成员';swift 4中的文本

Ios 类型为'的值;任何';没有成员';swift 4中的文本,ios,swift4,Ios,Swift4,错误很明显。sender声明为Any,因此编译器不知道实际的静态类型 将其更改为UITextField: @IBAction func endEditingText(_ sender: Any) { let baseURL = "http://api.openweathermap.org/data/2.5/forecast?q" let APIKeysString = "&appid=14b92e1046c4b6e4f4d5adda8259131b" guard

错误很明显。
sender
声明为
Any
,因此编译器不知道实际的静态类型

将其更改为
UITextField

@IBAction func endEditingText(_ sender: Any) {

    let baseURL = "http://api.openweathermap.org/data/2.5/forecast?q"
    let APIKeysString = "&appid=14b92e1046c4b6e4f4d5adda8259131b"
    guard let cityString = sender.text else {return}
    if let finalURL = URL (string:baseURL + cityString + APIKeysString) {
        requestWeatherDate(url: finalURL)

    } else {
        print("error")
    }
}

错误很明显。
sender
声明为
Any
,因此编译器不知道实际的静态类型

将其更改为
UITextField

@IBAction func endEditingText(_ sender: Any) {

    let baseURL = "http://api.openweathermap.org/data/2.5/forecast?q"
    let APIKeysString = "&appid=14b92e1046c4b6e4f4d5adda8259131b"
    guard let cityString = sender.text else {return}
    if let finalURL = URL (string:baseURL + cityString + APIKeysString) {
        requestWeatherDate(url: finalURL)

    } else {
        print("error")
    }
}

您可以键入cast sender to UITextField

@IBAction func endEditingText(_ sender: UITextField) { ...
或者在创建iAction时,可以使用UITextField代替任何

@IBAction func endEditingText(_ sender: Any) {
    let textFieldObject = sender as! UITextField
    ....
}

您可以键入cast sender to UITextField

@IBAction func endEditingText(_ sender: UITextField) { ...
或者在创建iAction时,可以使用UITextField代替任何

@IBAction func endEditingText(_ sender: Any) {
    let textFieldObject = sender as! UITextField
    ....
}

当v想要使用特定的东西,如UITEXTFILE或任何其他v需要强制转换的方法时??当v想要使用特定的东西,如UITEXTFILE或任何其他v需要强制转换的方法时??