【发布时间】:2016-02-07 20:23:55
【问题描述】:
我刚开始构建一个使用 REST api 的应用程序,我正在控制台中测试 JSON 响应。
我有 2 个用户输入的 UITextFields jobKeyword 和 location,然后单击“搜索”按钮后 JSON 将显示在控制台中。
但如果不关闭重新运行的应用程序,我将无法获得新的搜索。如何在不离开应用程序的情况下更新我的字段并获得新的响应?我是 iOS 开发的新手。这是 ViewController.swift:
import UIKit
import Alamofire
class ViewController: UIViewController {
let headers = ["Host":"data.usajobs.gov",
"User-Agent":"dezbill@icloud.com",
"Authorization-Key":"********************"
]
@IBOutlet weak var jobKeywordTxt: UITextField!
@IBOutlet var locationTxt: UITextField!
@IBOutlet weak var locationState: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(true)
}
@IBAction func searchBtn(sender: UIButton) {
let jobKeyword = jobKeywordTxt.text
let location = locationTxt.text
Alamofire.request(.GET, "https://data.usajobs.gov/api/Search", parameters:["LocationName":location!,"PositionTitle":jobKeyword!]).responseJSON { response in
debugPrint(response)
print(self.locationTxt.text)
}
}
}
【问题讨论】:
-
点击第二次搜索时会发生什么?代码看起来没问题。
-
我不确定您是在谈论异步函数、在后台请求和更新还是在获取 JSON 时出现问题。
-
例如:我在 jobKeyword 文本字段中输入“软件”,在位置文本字段中输入“迈阿密,佛罗里达”。单击搜索时,我在控制台中收到 JSON 响应。现在,如果我清除字段并为每个字段输入新值(例如“护士”和“德克萨斯州达拉斯”),然后再次单击搜索按钮,什么都不会发生!
-
您好,首先让我们澄清一下您的函数“searchBtn”是否会在您每次单击时被触发。简单地放一个日志,看看每次按下按钮时是否打印日志。然后我们就可以解决问题了。使用下面这行代码:) print("Function called")
-
@Ruchira,已经这样做了,每次按下按钮时都会在控制台中记录城市名称 print(self.locationTxt.text)。如果您有兴趣解决问题,请将您的电子邮件发送给我,我会将您添加到回购中
标签: ios json swift rest alamofire