Próbowałem zaimplementować blok zakończenia pobierania bez powodzenia. Ilekroć wysyłam APN, xcode wciąż narzeka, że nie jest zaimplementowane. Oto mój koddidReceiveRemoteNotification: fetchCompletionHandler: ale program obsługi zakończenia nigdy nie był nazywany
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {
println("2. User Data", userInfo)
completionHandler(UIBackgroundFetchResult.NewData)
}
i ostrzeżenie Dostaję w konsoli xcode jest to
Warning: Application delegate received call to -application:didReceiveRemoteNotification:fetchCompletionHandler: but the completion handler was never called.
Nie wiem, czy jestem wdrożenie właściwej składni tutaj
Usuń plik println lub zmień go na NSLog, a następnie spróbuj ponownie. Jeśli to nie zadziała, zawiń obiekt completionHandler w bloku wysyłkowym i prześlij go do kolejki w tle (nie głównego wątku), więc nazywa się AFTER, gdy ta metoda zwraca. –
@DavidH Nie widziałem już ostrzeżenia, gdy zastąpiłem 'println' przez' NSLog'. Dzięki! –