Giá trị ban đầu của một thuộc tính (trong trường hợp của bạn: timer
) không thể phụ thuộc vào thuộc tính khác của lớp học (trong trường hợp của bạn: interval
).
Vì vậy, bạn phải di chuyển assionment timer = NSTimer(interval, ...)
vào phương thức của lớp , ví dụ: vào viewDidLoad
. Kết quả là, timer
phải được xác định là tùy chọn hoặc ẩn hoàn toàn tùy chọn.
Cũng lưu ý rằng Selector(...)
nhận một ký tự là chuỗi làm đối số chứ không phải chính phương thức đó.
Vì vậy, điều này sẽ làm việc:
class ViewController: UIViewController {
var interval : NSTimeInterval = 1.0
var timer : NSTimer!
func timerRedraw() {
}
override func viewDidLoad() {
super.viewDidLoad()
timer = NSTimer(timeInterval: interval, target: self, selector: Selector("timerRedraw"), userInfo: nil, repeats: true)
// ...
}
// Other methods ...
}
Nguồn
2014-09-15 19:31:46
có thể trùng lặp của [Làm thế nào để khởi tạo các thuộc tính phụ thuộc vào nhau] (http://stackoverflow.com/questions/25854300/how-to-initialize-properties- điều đó phụ thuộc vào nhau) –