如何在swift中自动重复功能

时间:2016-01-08 21:48:49

标签: ios swift nstimer

我正在为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()
    }
}

1 个答案:

答案 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
}