使用 NSTimer Swift 无法解析的标识符自身的问题

Trouble with unresolved identifier self with NSTimer Swift

我有下面的代码,但我发现了一条错误消息。请注意,有问题的代码不在 viewcontroller class 中的 Swift 中。图片移动代码在viewdidappear函数中。

var timer = NSTimer(timeInterval:3, target: self, selector:Selector("randomnumbers:"), userInfo: nil, repeats: true)

func randomnumbers(timer:NSTimer) {
    var rockNamesArray:[String] = ["bird", "rock2", "rock3"]    
    var rockpos = Int(arc4random_uniform(UInt32(3)))
}

编辑:

if rockNamesArray[rockpos] == "rock2"  {
        UIView.animateWithDuration(3.0, animations: {
            self.mrock.frame = CGRect(origin: CGPoint(x: 167, y: 600), size: self.mrock.frame.size)
            },
            completion: { _ in
                self.mrock.frame = moriginalFrame
        })

    }

首先你必须在视图控制器中声明你的定时器class:

var timer = NSTimer()
var rockNamesArray:[String] = []
var rockpos = 0

然后在 viewDidLoad 中安排计时器:

override func viewDidLoad() {
    super.viewDidLoad()
    timer = NSTimer.scheduledTimerWithTimeInterval(3, target: self, selector: "randomnumbers", userInfo: nil, repeats: true)
}

//

func randomnumbers() {
   rockNamesArray = ["bird", "rock2", "rock3"]    
   rockpos = Int(arc4random_uniform(UInt32(rockNamesArray.count)))
}