0
我有這樣一段代碼在我的AppDelegate:背景取之謎
-(void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler{
ApiHandler *ah = [[ApiHandler alloc]init];
[ah login:^(BOOL succes) {
completionHandler(UIBackgroundFetchResultNewData);
[UIApplication sharedApplication].applicationIconBadgeNumber += 1000;
}];
}
我希望這個代碼做,當iOS的認爲這是適當做背景的抓取:
- 執行我的ApiHandler的登錄方法,並在成功
- 告訴獲取機制一切正常
- 提出申請與1000
現在證件號碼,出於某種原因,徽章計數不升高,而登錄方法已成功完成,並且
[UIApplication sharedApplication].applicationIconBadgeNumber += 1000;
斷點實際上打破了執行,我很擔心Fetch的成功完成。因爲,如果它不被認爲是成功的,就我所知,應用程序將停止嘗試最終獲取。
難道你們中的任何一位能指點我做錯了嗎? 在此先感謝
你真正
我認爲'completionHandler'應該是最後一個叫做的東西。它表明你完成了你正在做的任何事情。 – Stonz2
是的,你應該把completionHandler作爲最後一件事。此外,你應該檢查succes參數,如果false用UIBackgroundFetchResultFailed或UIBackgroundFetchResultNoData –