2015-02-26 14 views
5

çağrıldı Hiçbir şansla getirme tamamlama bloğunu uygulamaya çalışıyorum. Ne zaman bir APN gönderirim, xcode hala uygulanmadığından şikayet ediyor. İşte benim koddidReceiveRemoteNotification: fetchCompletionHandler: ancak tamamlama işleyicisi hiç bir zaman

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) { 

    println("2. User Data", userInfo) 

    completionHandler(UIBackgroundFetchResult.NewData) 

} 

ve ben

+1

Baskıyı kaldırın veya bir NSLog'a değiştirin, ardından tekrar deneyin. Bu işe yaramazsa, completionHandler'ı bir gönderme bloğuna sarın ve bir arka plan kuyruğuna (ana iş parçacığına değil) gönderin; bu nedenle, bu yöntemin geri dönmesinden sonra çağrılır. –

+0

@DavidH 'println' 'NSLog' ile değiştirdiğimde artık uyarı görmedim. Teşekkürler! –

cevap

8

Baskıyı kaldırın veya bir NSLog'a değiştirin, ardından tekrar deneyin. Büyük olasılıkla sorun nedeni, bu yöntemin size ana iş parçacığına değil arka planda gelmesidir. println, dişe dayanıklı olan ve yıllar ve yıllarca sertleştirilen NSLog'dan çok daha basittir.

+0

Teşekkürler David. Bu bilgi parçası yeni iOS geliştiricileri için belli değil. –

+0

Aslında bir tahminde bulundum - Bu yöntemi her zaman kullanıyorum ama bu hatayı hiç görmedim. Println hakkında çok sayıda şikayet çünkü iş parçacığı kaydedilmez. SO üzerinde arama yaparsanız, birçok kişinin kendi sargısına println sardığını göreceksiniz, böylece ana iş parçacığı üzerinde çıktı olur. –

0

Değil emin niçin Burada doğru sözdizimi uygulanması, ancak println değiştirilmesi edilirsem xcode konsolda alıyorum uyarı bu

Warning: Application delegate received call to -application:didReceiveRemoteNotification:fetchCompletionHandler: but the completion handler was never called. 

emin Değildir NSLog ile sorunu çözdü.

1

Tam olarak aynı sorun vardı ama tamamen farklı bir çözüm. Benimki Intercom benim sorunum insanlar in-app sohbet edebilir ve bildirimleri kesiyor gibi görünüyor ve didReceiveRemoteNotification benim AppDelegate benim hiç çağrılmadı.

Nihayet kafamı duvara çarptırarak durdurabilirim, umarım bu, birinin zamanını kurtarabilir.

İlgili konular