2017-05-31 70 views
1

我遇到了很多與此類似的問題,但很多都是針對舊版本的Xcode,或者根本無法使用。 我使用Xcode版本8.3.2(8E2002)和Swift編碼語言。我對編碼知之甚少,但年輕而且渴望學習! 我正在創建一個clicker game,它可以讓你每秒獲得遊戲幣。所以,如果你閒置2分鐘,它會給你120美元(每秒120秒120美元)。除此之外,您還可以通過點擊主要對象來賺錢。 這裏是我到目前爲止編碼:如何使用Swift添加計時器?

import UIKit 

class ViewController: UIViewController { 

var score = 0 
var add = 1 

func addpersec() { 

    score += 1 
} 
//func used to add to the score based timer. Aka, adding 1 per second 



@IBOutlet weak var scorecount: UILabel! 


@IBAction func clicks(_ sender: Any) { 
    score += 1 
    scorecount.text = "Honey: \(score)" 
} 

@IBOutlet weak var Bees: UITableView! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 


} 
+0

我不知道downvote是什麼,似乎是一個合法的問題 – hasen

回答

4
class ViewController: UIViewController { 
    var timer: Timer? = nil // Property 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
     self.timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(handleTimer), userInfo: nil, repeats: true) 
    } 

    func handleTimer(_ timer: Timer) { 
     print("Timer ticking!") 
    } 
} 

爲無效計時器,叫self.timer?.invalidate()

+0

Xcode中指出「的NSTimer」已更名爲'定時器' – Traxido

+0

@Traxido然後使用'定時器'。它曾經是'NSTimer',但是很多類已經通過刪除來自Objective-C的前綴(比如'NS')來重命名。 –

+0

Thankyou,我是Xcode和swift的新手,所以我不完全理解所有內容,但是另一個錯誤顯示出「使用未解析的標識符'YourViewControllerSubclass'」 – Traxido

0

你的問題似乎與到iOS UI,所以我不知道如果我的回答是有道理的。

對於通用延遲功能的執行(如Javascript的setTimeout),你可以使用一個DispatchQueue

// have this as a global somewhere 
let bg = DispatchQueue(label: "bg", qos: .background, target: nil) 

// anywhere else in your code: 

// First decide the time to execute your function 
let delayInSeconds = 3 
let when = DispatchTime.now() + delayInSeconds 

// call it 
bg.asyncAfter(deadline: when) { 
    // code to execute later (this is the body of an anonymous function) 
}