我在我的智慧的結尾在這裏試圖弄清楚如何讓這個NSTimer工作。爲了清楚起見,粘貼我的整個代碼。重要的部分是粗體。2.2定時計時器返回「視圖控制器沒有成員...」
import UIKit
import QuartzCore
import Foundation
class ViewController: UIViewController {
@IBOutlet weak var outerCircle: UIImageView!
@IBOutlet weak var innerCircle: UIImageView!
@IBOutlet weak var instructionLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
var timer: NSTimer!
timer = NSTimer.scheduledTimerWithTimeInterval(5, target: self, selector: #selector(ViewController.runTimedCode), userInfo: nil, repeats: true)
func runTimedCode() {
UIView.animateWithDuration(5, delay:0, options:[], animations: {
//Inhale
self.innerCircle.transform = CGAffineTransformMakeScale(3.5, 3.5)
self.instructionLabel.text = "Inhale"
}, completion: { finish in
//Exhale
UIView.animateWithDuration(5, delay:0, options:[], animations: {
self.innerCircle.transform = CGAffineTransformMakeScale(1, 1)
self.instructionLabel.text = "Exhale"
}, completion: nil)
})
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
我想要的是在 「runTimedCode()」,以每10秒運行。我目前得到一個錯誤的:。
timer = NSTimer.scheduledTimerWithTimeInterval(5, target: self, selector: #selector(ViewController.runTimedCode), userInfo: nil, repeats: true)
錯誤說「類型‘視圖控制器’沒有成員‘runTimedCode’
當我拿的ViewController的時候,我得到一個不同的錯誤:使用局部變量'runTimedCode'在它的聲明之前
最後,當我將該行移動到代碼的底部時,我得到了「#selector'的參數指的是一個未暴露給Objective-C的方法。
我覺得我已經誠實地嘗試了一切,讓這個計時器工作。我已經看過每一個可以想象的線程。我對計時器的功能有一些基本的誤解嗎?
大家都是對的..這是因爲在另一個函數中放置了一個函數。我對這個真的很陌生,所以我爲這樣一個業餘的錯誤道歉。感謝您的幫助! –