我在appdelegate中進行後臺提取的代碼從未完全運行。我打開了後臺提取選項並更新了plist。iOS:爲什麼抓取背景函數從未完全執行?
我按調試觸發代碼>模擬背景抓取
這是代碼
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' 看起來像這樣
getNotifications(id: String, callback...){
alamofire.request(.GET....){ jsonResponse in
//GETS HERE
callback(jsonResponse)
}
}
當觸發模擬背景獲取,alamofire GET請求被髮送並且數據被返回(我已經檢查了服務器並且發送了呼叫),但是,該應用似乎暫停在ge中的(// GETS HERE) t通知調用,所以剩下的代碼在後臺獲取(//更新通知標誌計數)永遠不會運行。
該代碼似乎超時。我應該得到30秒,但它似乎超過5秒或什麼東西。
任何想法爲什麼這段代碼沒有執行?
注意:如果我手動重新打開應用程序,則執行其餘代碼。
你沒有對你的'completionHandler'做任何事情。 – jtbandes