2015-01-21 7 views
0

У меня есть следующая функция входа, которая на симуляторе регистрирует меня и запускает обратный вызов, но не выполняет обратный вызов на моем ipad mini iOS 8.1.2. На моем ipad ActivityIndicator просто держится на вечность.PFUser.loginWithUserInBackground работает на симуляторе, но не на устройстве ios

Я прикрепил iphone 4, iOS 8.1.2 и, кажется, уже зарегистрирован там. Это показывает, что функция входа в систему работала от 3 до 4 недель назад, когда я тестировал это.

В чем проблема?

@IBAction func login(sender: AnyObject) { 

    var errorMessage = self.validateForm() 
    if !errorMessage.isEmpty { 
     var alert = UIAlertView(title: "", message: errorMessage, delegate: nil, cancelButtonTitle: "OK") 
     alert.show() 
     return 
    } 

    self.activityIndicator.hidden=false 
    self.activityIndicator.startAnimating() 

    NSLog("Logging in ...") 
    PFUser.logInWithUsernameInBackground(emailAddressTextField.text, password: passwordTextField.text){ 
     (user:PFUser!, error:NSError!) -> Void in 

     self.activityIndicator.stopAnimating() 
     self.activityIndicator.hidden=true 

     if error == nil { 
      if (user != nil){ 
      NSLog("login successful with: \(user)") 
      self.dismissViewControllerAnimated(false, completion: nil) 
      } 
     } else if error != nil { 

      NSLog("login failed") 
      var messageForUser = "Please try again" 
      if error.code == 101 { 
       messageForUser = "Please check your email address and password" 
      } else if error.code == 100 { 
       messageForUser = "Please check your internet connection" 
      } 

      var alert = UIAlertView(title: "Problem logging in", message: messageForUser, delegate: nil, cancelButtonTitle: "OK") 
      alert.show() 
     } 
    } 
} 

Приложение приложение для табло. Я нажимаю кнопку, чтобы перейти к отдельному контроллеру loginview. Когда tabbarcontroller сначала загружает это трассировки стека:

2015-01-21 16:07:22.059 Tya[1610:323782] Warning: A long-running operation is being executed on the main thread. 
Break on warnBlockingOperationOnMainThread() to debug. 
2015-01-21 16:07:22.465 Tya[1610:323782] NewDeliveryVC loaded 
2015-01-21 16:07:22.468 Tya[1610:323782] Warning: A long-running operation is being executed on the main thread. 
Break on warnBlockingOperationOnMainThread() to debug. 
2015-01-21 16:07:22.536 Tya[1610:323782] - Current user is nil. 
2015-01-21 16:07:22.537 Tya[1610:323782] - currentInput: 0 
2015-01-21 16:07:22.600 Tya[1610:323782] Not logged-in 

Тогда, когда я добраться до loginviewcontroller:

2015-01-21 16:13:19.564 Tya[1610:323782] login Button tapped 
2015-01-21 16:13:19.639 Tya[1610:323782] viewDidLoad: LoginVC. 
2015-01-21 16:13:19.681 Tya[1610:323782] viewWillAppear: LoginVC 
+0

пользователь существует ли в базе данных? – Christian

+0

да, я вхожу в систему с существующим пользователем. – Dan1ell

ответ

0

Так трассировки стека говорит поместить символическую точку останова на warnBlockingOperationOnMainThread.

Я сделал это, как было объяснено на этот вопрос: A long-running Parse operation is being executed on the main thread

Нажатие по результатам выявили проблему в AppDelegate с местным датасторе.

Я прокомментировал «Parse.enableLocalDatastore». После отключения локального хранилища данных теперь я могу войти.

(Местный хранилищу также давал мне проблемы с пиннинга в другой части приложения, так что я официально сделал его использовать.)