我正在處理一個項目,該項目發送一些HTTP命令,並帶有用戶在文本字段中定義的IP地址。 IP地址本質上是爲我的應用程序管理許多不同的功能。正如我所做的那樣,我一直在遇到「實例成員無法用於類型」錯誤。在變量聲明的基本原理中,執行以下操作的正確方法是什麼?我將有大約40-50個不同的請求。Xcode Swift 2變量聲明(實例成員不能在類型視圖控制器上使用)
@IBOutlet weak var myIPaddress: UITextField!
var baserequest = "http://\(myIPaddress):8088/api/?function="
var requestA = "\(baserequest)myFunctionA&value=abc"
var requestB = "\(baserequest)myFunctionB&value=xyz"
var requestC = "\(baserequest)myFunctionC&value=123"
...
...
我不知道這事,但因爲我們使用HTTP命令聲明一個看起來像這樣
var program1 = NSMutableURLRequest(URL: NSURL(string: "\(baseRequest)activeinput&input=1")!)
* UPDATE *
我不知道我的問題是。這是我的代碼,它仍然拋出這個錯誤。在
var request1 = NSMutableURLRequest(URL: NSURL(string: "\(baserequest)activeinput&input=1")!)
所以這是我的全部代碼
import UIKit
import Foundation
func httpGet(request: NSURLRequest!, callback: (String?, NSError?) -> Void) {
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { data, response, error in
guard error == nil && data != nil else {
callback("", error)
return
}
callback(String(data: data!, encoding: NSUTF8StringEncoding), nil)
}
task.resume()
}
class FirstViewController: UIViewController, UITextFieldDelegate {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBOutlet weak var vmixip: UITextField!
var baserequest: String = ""
func textFieldDidEndEditing(textField: UITextField) {
updateBaseRequest(textField.text!)
}
func updateBaseRequest(vmixip: String) {
baserequest = "http://\(vmixip):8088/api/?function="
}
var request1 = NSMutableURLRequest(URL: NSURL(string: "\(baserequest)activeinput&input=1")!)
@IBAction func Program1(sender: UIButton) {
if let image = UIImage(named:"g1") {
sender.setImage(image, forState: .Normal)
}
httpGet(request1) { string, error in
guard error == nil && string != nil else {
print(error?.localizedDescription)
return
}
print(string!) //
}
}
}
你究竟在哪裏得到這個錯誤? – beeef
你有幾個問題,1,你需要引用'myIPaddress.text'來獲取文本字段中的字符串,但更重要的是,無論如何你都無法使用該值,因爲你結束更新' baseRequest'和所有其他變量在用戶更改字段時,所以您需要編寫類似於UiTextFieldDelegate的代碼來執行此操作。 – Paulw11
Hi Seth。你會考慮對你收到的答案和/或接受其中的一個答覆嗎?這是我們在這裏獎勵有用答案的方式。 – halfer