2016-05-13 4 views
0

У меня есть функция NSNotification, которая дает мне ошибку при вызове. Как я могу это исправить?Функция NSNotification не может быть вызвана

Это ошибка, которую выбрасывают:

Невозможно преобразовать значение типа '(NSNotification) .Type' (ака 'NSNotification, тип') следует ожидать аргумент типа 'NSNotification'

Затронутые блок кода:

@IBAction func loginBtn(sender: AnyObject) { 

    let loginobj = Login(userName : self.usernameField.text!, passWord : self.pwdField.text!) 
    loginobj.getRequest() 
    handlingAuthentication(NSNotification) 

} 

Это функция, которая вызывается

func handlingAuthentication(notification: NSNotification) { 

    let errorDectected = notification.object as! Bool 

    if(errorDectected){ 
     //initialize Alert Controller 
     let alertController = UIAlertController(title: "Authentication error", message: AuthHelpers.sharedInstance.errorMessage, preferredStyle: .Alert) 

     //Initialize Actions 
     let okAction = UIAlertAction(title: "Ok", style: .Default){ 
       (action) -> Void in 
       self.dismissViewControllerAnimated(true, completion: nil) 
      } 

     //Add Actions 
     alertController.addAction(okAction) 

     //Present Alert Controller 
     self.presentViewController(alertController, animated: true, completion: nil) 

    } 
    else 
    { 
     print("error not found") 
     NSUserDefaults.standardUserDefaults().setBool(true, forKey: "isUserLoggedIn") 

     NSUserDefaults.standardUserDefaults().synchronize() 

     self.dismissViewControllerAnimated(true, completion:nil) 

    } 

} 

Код где NSNotification инициализируется:

var error = "true" 
NSNotificationCenter.defaultCenter().postNotificationName("errorFound", object:error) 

Я не уверен, если это правильно, но когда я хочу, чтобы изменить значение ошибки я бы просто сделать это error = false

Скриншот ошибка брошена: Error thrown

+0

можете усовершенствовать ваш вопрос ко мне, что именно произошло? –

+0

Все в порядке, мне удалось это решить. Спасибо за попытку помочь :) – noobdev

ответ

0

Оказывается, мне просто нужно было добавить

NSNotificationCenter.defaultCenter().postNotificationName("errorPresent", object:errorDict) 

в нижней части моей функции getRequest() в Login.swift, чтобы отправить уведомление и

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(LoginViewController.handlingAuthentication(_:)), name:"errorPresent", object: nil) 

в моем LoginViewController код для получения уведомления, а также

func handlingAuthentication(notification: NSNotification) { 

    let dict = notification.object as! NSDictionary 
} 

иметь дело с данные, прошедшие