在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/

    10-10 03:58