我正在为iOS设备创建一个应用程序,用于监控一只股票的价格。我已经成功创建了一个从API中收集数据并打印出当前股票价值的函数。
问题在于,当我运行应用程序时,会打印一个(当前)价格并且它始终保持这样的状态。
我的问题是如何使该功能在每个指定的时间内重复?
这是我的viewDidLoad,是我想要每隔几秒重复一次的功能。
代码:
import Cocoa
class ViewController: NSViewController {
let baseURL = "url"
@IBOutlet weak var bitcoinValue: NSTextField!
override func viewDidLoad() {
super.viewDidLoad()
getJSON { (usdPrice) -> Void in
let usdPriceText = usdPrice.description
self.bitcoinValue.stringValue = usdPriceText
print(usdPrice)
}
}
func getJSON(completion: (Double) -> Void) {
let url = NSURL(string: baseURL)
let request = NSURLRequest(URL: url!)
let session = NSURLSession(configuration: NSURLSessionConfiguration.defaultSessionConfiguration())
let task = session.dataTaskWithRequest(request) { (data, response, error) -> Void in
if error == nil{
let swiftyJSON = JSON(data: data!)
let usdPrice = swiftyJSON["bpi"]["USD"]["rate"].doubleValue
completion(usdPrice)
} else {
print("There was an error!")
}
}
task.resume()
}
}
答案 0 :(得分:9)
您可以使用NSTimer。
以下是一个例子
//in your viewdidload
var timer = NSTimer.scheduledTimerWithTimeInterval(0.4, target: self, selector: "update", userInfo: nil, repeats: true)
// must be internal or public.
func update() {
// your repeating function
}