【发布时间】:2016-02-15 13:35:23
【问题描述】:
我正在开发一个项目,该项目使用用户在文本字段中定义的 IP 地址发送一些 HTTP 命令。 IP 地址本质上是通过管道传输到我的应用程序的许多不同功能中的。当我这样做时,我一直遇到“实例成员不能用于类型”错误。在变量声明的基础上,执行以下操作的正确方法是什么?我将有大约 40-50 个不同的请求。
@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" )!)
* 更新 *
我不确定我的问题是什么。这是我拥有的代码,它仍然抛出该错误。开
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!) //
}
}
}
【问题讨论】:
-
你究竟是从哪里得到这个错误的?
-
您有几个问题,1,您需要参考
myIPaddress.text来获取文本字段中的字符串,但更重要的是,您此时无论如何都不能使用该值,因为当用户更改字段时,您将结束更新baseRequest和所有其他变量,因此您需要在 UiTextFieldDelegate 之类的代码中编写代码来执行此操作 -
嗨赛斯。您会考虑对您收到的任何答案进行投票,和/或接受其中一个吗?这就是我们在这里奖励有用答案的方式。
标签: ios xcode swift swift2 xcode7