2014-07-15 13 views
5

मैं का एक रनटाइम त्रुटि हो रही है कॉलिंग के साथ त्रुटि को ठीक करने के लिए:एक स्विफ्ट NSTimer इसका चयनकर्ता

2014-07-15 16: 49: 44.893 TransporterGUI [1527: 303] - [_ TtC14TransporterGUI11AppDelegate printCountdown]: गैर मान्यता प्राप्त अजीब तरह से पर्याप्त

@IBAction func schedule(sender : AnyObject) { 

    var startTime = startDatePicker.dateValue.timeIntervalSinceDate(NSDate()) 
    var endTime = endDatePicker.dateValue.timeIntervalSinceDate(startDatePicker.dateValue) 
    var startDate = NSDate.date() 
    let params = ["startTime": startTime, "startDate": startDate] 

    var counter = NSTimer.scheduledTimerWithTimeInterval(1.0, target:self, selector:Selector("printCountdown"), 
     userInfo:params, repeats:true) 
} 

func printCountdown(timer: NSTimer) { 

    var userInfo = timer.userInfo as NSDictionary 
    var startTime = userInfo["startTime"] as NSTimeInterval 
    var startDate = userInfo["startDate"] as NSDate 

    var elapsedTime: NSTimeInterval = NSDate.date().timeIntervalSinceDate(startDate) 
    var remainingTime: NSTimeInterval = startTime - elapsedTime; 

    if (remainingTime <= 0.0) { 
     timer.invalidate() 
     transferLabel.title = "No transfer scheduled" 
    } 

    transferLabel.title = remainingTime.description 

} 

, अगर मैं समारोह printCountdown के हस्ताक्षर बदल कोई पैरामीटर है, समारोह उचित रूप से कहा जाता है: चयनकर्ता 0x10040e8a0

जब मैं निम्नलिखित कोड का उपयोग स्विफ्ट एक टाइमर आग उदाहरण के लिए भेजा , लेकिन तब मेरे पास Acce का कोई रास्ता नहीं है कॉल करने वाले टाइमर ऑब्जेक्ट को एसएस करना।

अग्रिम धन्यवाद!

+1

चयनकर्ता को बदलना त्रुटि का बिंदु है। प्रिंटकाउंटडाउन का पूरा रूप 'प्रिंटकाउंटडाउन:' है। चयनकर्ता स्ट्रिंग गलत है। – CodaFi

उत्तर

6

आपका चयनकर्ता "प्रिंटकाउंटडाउन:" होना चाहिए, एक समापन कॉलन के साथ यह इंगित करने के लिए कि चयनकर्ता पैरामीटर लेता है।

संबंधित मुद्दे