2014-12-30 11 views
8

Wykonałem również skrypt Parse.enableLocalDatastore() w dispatch_async - nadal mam ostrzeżenie.Parse.enableLocalDatastore() - Ostrzeżenie: Na głównym wątku wykonywana jest długotrwała operacja.

Nawet kiedy dodać symboliczną przerwania na warnParseOperationOnMainThread nie robi przerwa

oto fragment kodu z aplikacji delegata

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
     // Override point for customization after application launch. 

     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) { 
      Parse.enableLocalDatastore() 

      Parse.setApplicationId("XXX", clientKey: "YYY") 
      PFAnalytics.trackAppOpenedWithLaunchOptionsInBackground(launchOptions, block: nil) 

      var defaultACL = PFACL() 
      defaultACL.setPublicReadAccess(true) 
      defaultACL.setPublicWriteAccess(false) 
      PFACL.setDefaultACL(defaultACL, withAccessForCurrentUser:true) 

      CAUser.registerSubclass() 

      NSLog("App finish loading") 

      dispatch_async(dispatch_get_main_queue()){ 
       () -> Void in 
       // any UI updates need to happen in here back on the main thread 
      } 
     } 

     return true 
    } 

żądanie

wdzięczny jeśli ktoś mi podkreślić, Czego brakuje, aby uniknąć tego komunikatu ostrzegawczego?

+0

samego tutaj. wierzę, że to błąd. – alix

+0

może spróbować tła priorytetu? To ostrzeżenie wynika z tego, że kod działa w głównym wątku, gdy nie powinien, i dlatego blokuje interfejs użytkownika. Jeśli masz 100% pewności, że to się dzieje tutaj, a nie gdzie indziej, spróbuj tego. W przeciwnym razie nie wiem, wszystko wygląda dobrze. Z drugiej strony, Parse explicity mówi w odpowiedzi gdzieś, że te ostrzeżenia są po prostu ostrzeżeniami, a jeśli Twoja aplikacja działa tak czy inaczej, możesz bezpiecznie zignorować je. –

+0

Dzięki za sugestię, próbowałem zmienić priorytet na tło i nadal ma to samo ostrzeżenie. Jeśli chcesz się upewnić, że 100% tej linii jest powodem tak, mam komentarz i odkomentuję linię, aby się upewnić, a także wykonuję linię wydruku tuż przed i po, również dodaję punkt przerwania w tej linii, więc jestem pewien to jest przyczyną tego ostrzeżenia. Przeczytałem o zignorować błąd, jednak wolałbym, jeśli mogę tego uniknąć - będzie lepiej. Dzięki – gfekri

Odpowiedz

2

Jest to błąd i zostanie on rozwiązany w następnej wersji składni SDK https://developers.facebook.com/bugs/1537241009878763/

+2

Błąd nie został jeszcze naprawiony w Parse SDK 1.6.2. Nadal mam to z 'Parse.enableLocalDatastore + Parse.setApplicationId + PFFacebookUtils.initializeFacebook' (lub odpowiednikiem na Twitterze) – Kalzem

Powiązane problemy