我的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认为适合进行后台提取时,我希望此代码可以执行的操作是:
现在,出于某种原因,未提高徽章数量,并且登录方法成功完成,并且
处的断点[UIApplication sharedApplication].applicationIconBadgeNumber += 1000;
实际上打破了执行,我担心Fetch的成功完成。因为,如果它被认为不成功,应用程序将最终停止尝试获取,据我所知。
你们有没有人能指出我在这里做错了什么? 提前致谢
你真的
答案 0 :(得分:0)
在设置徽章编号之前,您应该注册通知。
UIUserNotificationSettings* notificationSettings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:notificationSettings];
[UIApplication sharedApplication].applicationIconBadgeNumber += 1000;
注意:强>
您可以
completionHandler(UIBackgroundFetchResultNewData);
放置任何内容 哪里。没关系。