启动后台任务时iOS崩溃

时间:2016-07-25 13:47:10

标签: ios objective-c uibackgroundtask

我最近重新访问了最后为iOS 8.4构建的应用程序,现在将其更新为9.3。我运行它的前几次工作正常,但现在每次打开时崩溃,每个模拟器都出现错误:EXC_BAD_ACCESS(code = 50)

-(void)beginBackgroundUpdateTask
{
  if (self.backgroundTaskAgent == UIBackgroundTaskInvalid)
   {
     self.backgroundTaskAgent = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^(void) {
        [self endBackgroundUpdateTask];
     }];
   }
}
-(void)endBackgroundUpdateTask
{
    if (self.backgroundTaskAgent != UIBackgroundTaskInvalid)
    {
        [[UIApplication sharedApplication] endBackgroundTask:self.backgroundTaskAgent];
        self.backgroundTaskAgent = UIBackgroundTaskInvalid;
    }
}

使用beginBackgroundTaskWithExpirationHandler在top方法中发生崩溃。我之前从未遇到此错误,也无法自行或在SO上找到任何解决方案。

1 个答案:

答案 0 :(得分:0)

试试这个,

 -(void)beginBackgroundUpdateTask
{
  self.backgroundTaskAgent == UIBackgroundTaskInvalid

  self.backgroundTaskAgent = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^(void) {
    [self endBackgroundUpdateTask];
 }];

}
 -(void)endBackgroundUpdateTask
{

    [[UIApplication sharedApplication] endBackgroundTask:self.backgroundTaskAgent];
    self.backgroundTaskAgent = UIBackgroundTaskInvalid;

 }