我创建了两个 UITextField
@IBOutlet weak var txtUsername: UITextField!
@IBOutlet weak var txtUserpassword: UITextField!
并设置用户名和密码来存储数据
let username = txtUsername.text
let userpassword = txtUserpassword.text
另外,将数据传递到 URL
let urlAsString = "http://lifewinner2015.dlinkddns.com/SERVER/user?function=login&username=\(username)&password=\(userpassword)"
但是\(用户名)
和\(用户密码)
可能有错误,Xcode无法运行。
可以帮我解决这个问题吗?
最佳答案
请注意,每个 URL 组件都需要正确转义。转义很容易出错,而且很容易出错。
因此,您应该使用 NSURLComponents
创建一个 URL,该 URL 也会自动为您转义 URL 的不同组件:
let urlString = "http://lifewinner2015.dlinkddns.com/SERVER/user"
注意:上面的 URL 还包含几个可能需要转义的组件。如果您确定对于给定的字符串文字不需要转义,您可以尝试按上面的方式设置 URL 字符串。否则单独设置每个组件。
guard let urlComponents = NSURLComponents(string: urlString) else {
throw MyError.CouldNotCreateURLFromString(string: urlString)
}
然后创建url查询组件:
let queryItems: [NSURLQueryItem] = [
NSURLQueryItem(name: "function", value: "login"),
NSURLQueryItem(name: "username", value: username),
NSURLQueryItem(name: "password", value: userpassword)
]
并为其分配 url 组件对象:
urlComponents.queryItems = queryItems
获取 URL 现在不应该抛出异常,但无论如何:
guard let url = urlComponents.URL else {
throw MyError.CouldNotCreateURL
}
关于ios - 如何将输入数据的文本字段传递到 swift 上的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35874991/