-2

I'm getting server time using Alamofire, and with NSTimer I refresh this time every second.

But I get error

unrecognized selector sent to instance 0x7ff4636126a0'

and also if I change selector to

selector: "getTime:"

, it gives me an error like this.

enter image description here

How should I fix it?

This is my code.

    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()
            }
        }

    }
fatihyildizhan
  • 8,614
  • 7
  • 64
  • 88
alphonse
  • 687
  • 1
  • 6
  • 16

1 Answers1

1

You should declare a getTime method in your ViewController.

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
}
Misternewb
  • 1,066
  • 9
  • 12
  • func getTime(completed: DownloadComplete) is declared, they have different signatures. Also you have getTime { () -> () } which is a closure, not a method. – Misternewb Mar 21 '16 at 13:07