Mein Code in Appdelegate für Hintergrund Abruf ist nie vollständig ausgeführt. Ich habe die Hintergrundfetch-Option eingeschaltet und die PLIST aktualisiert.iOS: Warum wird die Fetch-Hintergrundfunktion nie vollständig ausgeführt?
I auslösen den Code von Debug drücken> Hintergrund
Dies ist der Code
func application(application: UIApplication, performFetchWithCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {
User.getNotifications(User.getUserDetails()["id"].string!, callback: {(notifications) in
//update notification badge count
notificationBadgeCount = X
})
}
'User.getNotifications' wie folgt aussieht
getNotifications(id: String, callback...){
alamofire.request(.GET....){ jsonResponse in
//GETS HERE
callback(jsonResponse)
}
}
Simulieren Fetch Wenn der simulierten Hintergrund auslösenden fetch, die alamofire-GET-Anfrage wird gesendet und Daten werden zurückgegeben (ich habe den Server überprüft und der Anruf wird gesendet), allerdings scheint die App bei (// GETS HIER) im ge suspendiert zu sein tNotifications aufrufen, so dass der Rest der Code im Hintergrund holen (// Update Benachrichtigung Abzeichen Anzahl) wird nie ausgeführt.
Der Code scheint Timeout. Ich soll 30s bekommen, aber es scheint in 5s oder so etwas zu haben.
Eine Idee, warum dieser Codeabschnitt nicht ausgeführt wird?
HINWEIS: Wenn ich die App manuell erneut öffne, wird der Rest des Codes ausgeführt.
Sie haben nichts mit Ihrem 'completionHandler' gemacht. – jtbandes