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?
samego tutaj. wierzę, że to błąd. – alix
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. –
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