Ios Swift2-NSTimer崩溃

Ios Swift2-NSTimer崩溃,ios,crash,double,swift2,nstimer,Ios,Crash,Double,Swift2,Nstimer,当我试图使计时器成为动态的时,它崩溃了。 添加如下代码,让我知道我在哪里出错: let defaults = NSUserDefaults.standardUserDefaults() let tTimer = defaults.stringForKey("ThankYouTimer") let doubleTimerValue:Double = NSString(string: tTimer!).doubleValue NSTimer.scheduledTimerWithTimeInterva

当我试图使计时器成为动态的时,它崩溃了。 添加如下代码,让我知道我在哪里出错:

let defaults = NSUserDefaults.standardUserDefaults()
let tTimer = defaults.stringForKey("ThankYouTimer")
let doubleTimerValue:Double = NSString(string: tTimer!).doubleValue
NSTimer.scheduledTimerWithTimeInterval(doubleTimerValue, target: self, selector: "fireTimer", userInfo: nil, repeats: false)
提前谢谢

import XCPlayground
XCPlaygroundPage.currentPage.needsIndefiniteExecution = true
import Foundation

class C {
    func f() {
        print("job")
    }
}
let c = C()
NSTimer.scheduledTimerWithTimeInterval(1, target: c, selector: "f", userInfo: nil, repeats: false)
// 2015-11-06 09:22:55.261 Untitled Page[28568:1397919] *** NSForwarding: warning: object 0x7fd51352d190 of class '__lldb_expr_574.C' does not implement methodSignatureForSelector: -- trouble ahead Unrecognized selector -[__lldb_expr_574.C f]
如果您从NSObject中创建子类C

import XCPlayground
XCPlaygroundPage.currentPage.needsIndefiniteExecution = true
import Foundation

class C: NSObject {
    func f() {
        print("job")
    }
}
let c = C()
NSTimer.scheduledTimerWithTimeInterval(1, target: c, selector: "f", userInfo: nil, repeats: false)
// print "job" as expected
或者将您的函数定义为@objc

import XCPlayground
XCPlaygroundPage.currentPage.needsIndefiniteExecution = true
import Foundation

class C {
    @objc func f() {
        print("job")
    }
}
let c = C()
NSTimer.scheduledTimerWithTimeInterval(1, target: c, selector: "f", userInfo: nil, repeats: false)
// print "job" as expected

那不是你真正的代码,是吗?如果是的话,tTimer到底是什么?如果不是,请删除它并显示真实代码。您可以发布堆栈跟踪吗?以及异常文本。无法识别的选择器发送到实例,毫无疑问…@trojanfoe或tTimer意外为Niltimer,它具有存储在NSUserDefaults中的滑块值。