Swift:尝试将Class方法作为NSTimer的选择器

时间:2016-02-03 08:36:21

标签: swift

我正在尝试将班级Sentence的班级方法用作selector的{​​{1}}。这是我的方法,顺便提一下也是NSTimer调用的方法:

NSTimer

我需要在func playEvent(eventIndex : Int){ if (eventIndex < 2){ let currEvent = self.eventArray[eventIndex] currEvent?.startEvent() let nextIndex = eventIndex + 1 NSTimer.scheduledTimerWithTimeInterval((currEvent?.duration)!, target: self, selector: "playEvent:sentence:", userInfo: NSNumber(integer: nextIndex), repeats: true) } else if (eventIndex==2){ self.eventArray[eventIndex]?.startEvent() NSTimer.scheduledTimerWithTimeInterval(0.4, target: self, selector: "sentenceDidFinish", userInfo: nil, repeats: true) } else{ //do nothing } } 中写self.playEvent还是不可能?

这是整个班级的背景: https://gist.github.com/ebbnormal/e56b0b6ebedbe4474d01

1 个答案:

答案 0 :(得分:1)

您的问题/代码难以理解,请添加课程定义并重新提问。

<强>更新

class SomeClass: NSObject {

    class func someClassMethod() {
        print("called class method")
    }

    func someInstanceMethod() {
        print("called instance method")
    }

    func setupInstanceMethodTimer() {
        NSTimer.scheduledTimerWithTimeInterval(0.4, target: self, selector: Selector("someInstanceMethod"), userInfo: nil, repeats: true)
    }

}

// setup timer for class method
NSTimer.scheduledTimerWithTimeInterval(0.4, target: SomeClass.self, selector: Selector("someClassMethod"), userInfo: nil, repeats: true)

// setup timer for instance method
let someInstance = SomeClass()
someInstance.setupInstanceMethodTimer()