我有一些奇怪的麻烦。 有我的按钮并连接到API:
Alamofire.request("http://app", method: .get, headers: headers).responseJSON { response in
print("response",response)
switch response.result {
case .success(let value):
let json = JSON(value)
let success = json["success"].boolValue
print("successs",success)
if success == false{
let error = json["error"].stringValue
print(error)
}else{
for (_,subJson):(String, JSON) in json["data"][0] {
let name = subJson["user"]["name"].stringValue
self.nameCheck.append(name)
}
print("PresentTitle",self.nameCheck[0],"\(Date())")
}
case .failure(let error):
print(error)
}
}
按下按钮后,每次都会看到相同的值,但是API中的值每分钟更改一次。但是,如果您退出该ViewController并再次进入它,则会出现一个新值。
我需要怎么做才能在不离开ViewController的情况下显示新值?
答案 0 :(得分:0)
您可以使计时器每分钟调用一次api,如下所示:
Timer.scheduledTimer(timeInterval: 60, target: self, selector: #selector(callApi), userInfo: nil, repeats: true)
您应该在viewDidLoad()方法中设置计时器。 然后创建函数:
@objc func callApi() {
// here you write your code
}
答案 1 :(得分:-1)
看起来您必须做一个实时应用程序来处理这种情况。一个很好的选择是基于WebSockets的SignalR。他们有一个不错的.NET库和一些快捷的Pod,例如: