在Xcode中我有这个:
import UIKit
import AVFoundation
import Foundation
var position = 0
var gameTimer = NSTimer()
class ViewController: UIViewController {
@IBAction func button(sender: AnyObject) {
gameTimer = NSTimer.scheduledTimerWithTimeInterval(0.5, target: self, selector: "runTimedCode:", userInfo: nil, repeats: true)
func runTimedCode() {
position = Int(arc4random_uniform(11))
}}}
当我运行此应用程序时,它崩溃并返回错误:
Thread 1: signal SIGABRT.
我已经在没有NSTimer的情况下运行了该脚本,它运行良好。
我也使用和不使用冒号来运行它,并且返回相同的结果。
最佳答案
两个问题:
func runTimedCode()
超出@IBAction button()
的范围。选择器/目标方法必须在类的顶层。 runTimedCode:
的冒号,要么将runTimedCode
声明为runTimedCode(timer: NSTimer)
。 Selector
中的每个冒号代表一个参数。 关于ios - Swift- NSTimer崩溃的应用程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35111466/