2016-03-21 24 views
-2
10 ile gönderiliyor

Alamofire, ve NSTimer ile sunucu saatini alıyorum Bu saati her saniyede yeniliyorum.Swift: Örneğin tanınmayan seçici NSTimer

Ama olsun

tanınmayan seçici örneği 0x7ff4636126a0'

ve ayrıca ben

seçicinin seçici değiştirirseniz gönderilen hata: "getTime:"

, bana bu gibi bir hata veriyor s.

enter image description here

Bunu nasıl

düzeltmek gerekir

?

Bu benim kodum.

import UIKit 
    import Alamofire 

    typealias DownloadComplete =() ->() 

    class ViewController: UIViewController { 

     @IBOutlet var currentTime: UILabel! 
     var stringDateFromServer = String() 
     let dateFormatter = NSDateFormatter() 

     override func viewDidLoad() { 
      super.viewDidLoad() 

      getTime {() ->() in 

       self.dateFormatter.dateFormat = "EEE, dd MMM yyyy HH:mm:ss zzz" 
       self.dateFormatter.locale = NSLocale(localeIdentifier: "en_US") 

       let date2 = self.dateFormatter.dateFromString(self.stringDateFromServer)! 

       self.dateFormatter.locale = NSLocale.currentLocale() 
       let date3 = self.dateFormatter.stringFromDate(date2) 

       self.currentTime.text = date3 
      } 

      NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "getTime", userInfo: nil, repeats: true) 

     } 

     func getTime(completed: DownloadComplete) { 

      let url = NSURL(string: "http://google.com")! 

      Alamofire.request(.HEAD, url).responseJSON { (Response) -> Void in 

       let result = Response.response 

       if let headers = result?.allHeaderFields { 
        if let date = headers["Date"] as? String { 
         self.stringDateFromServer = date 

         } 
        } 
       completed() 
      } 
     } 

    } 
+0

"getTime" adında bir iç ve dış işleviniz var mı? Onları farklı şekilde adlandırmaya çalıştın mı? – Alex

+0

deneyin Selector ("getTime:") – Ro22e0

+0

@Alex bu adlar aynıdır çünkü tam yöntemini arıyorum çünkü nasıl farklı adlandırabilirim? – alphonse

cevap

1

Sen ViewController bir getTime yöntemi beyan etmelidir.

func getTime() { 
    self.dateFormatter.dateFormat = "EEE, dd MMM yyyy HH:mm:ss zzz" 
    self.dateFormatter.locale = NSLocale(localeIdentifier: "en_US") 

    let date2 = self.dateFormatter.dateFromString(self.stringDateFromServer)! 

    self.dateFormatter.locale = NSLocale.currentLocale() 
    let date3 = self.dateFormatter.stringFromDate(date2) 

    self.currentTime.text = date3 
} 
+0

Bu zaten ViewController – alphonse

+0

içinde bildirilmiştir func getTime (tamamlandı: DownloadComplete) bildirildi, farklı imzaları var. Ayrıca, bir yöntem değil, bir kapatma olan getTime {() ->()} var. – Misternewb

+0

Şimdi sorunun ne olduğunu görebiliyorum. Teşekkürler – alphonse

İlgili konular