gpt4 book ai didi

ios - 结束背景任务 : Causing "Terminated due to signal 9"

转载 作者:行者123 更新时间:2023-11-29 12:11:53 28 4
gpt4 key购买 nike

我的应用同步 RSS 提要大约需要 15-30 秒,每次同步我都请求 beginBackgroundTaskWithExpirationHandler:。在 iOS 7 和 iOS 8 中一切正常。

从 iOS 9 开始调用 [[UIApplication sharedApplication] endBackgroundTask: backgroundTask]; 导致应用程序崩溃并显示来自调试器的消息:

Terminated due to signal 9.

根据我的研究,信号 9 表示该应用使用了太多内存。当我使用仪器时,应用程序的占用率永远不会超过 30mb 或 40%。

我知道它来自调用 endBackgroundTask:,因为如果我不调用它,应用程序就不会崩溃。然而,一旦我调用 endBackgroundTask: 应用程序每次都会崩溃。

我不确定这里出了什么问题。我已经尝试了一切。重写代码,移动代码,注释掉除 endBackgroundTask: 之外的所有内容。任何帮助或见解将不胜感激。

代码如下:

    @interface SyncClass ()

@property (nonatomic) UIBackgroundTaskIdentifier backgroundTask;
@end

-(void)startSync
{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

[self beginBackgroundUpdateTask];
// I then call my syncing code [syncClass sync];

});


//When sync is done call endBackgroundTask
[self endBackgroundUpdateTask];
}

- (void) beginBackgroundUpdateTask
{
NSLog(@"Background Time:%f",[[UIApplication sharedApplication] backgroundTimeRemaining]);

self.backgroundTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
[self endBackgroundUpdateTask];
}];

}

- (void) endBackgroundUpdateTask
{
[[UIApplication sharedApplication] endBackgroundTask: self.backgroundTask];
self.backgroundTask = UIBackgroundTaskInvalid;
NSLog(@"Ending background task");
}

最佳答案

在这里回答我自己的问题。 AFNetworking 和 FMDB 碰巧已经过时了。通过 cocoa pod 更新它们似乎解决了这个问题。

关于ios - 结束背景任务 : Causing "Terminated due to signal 9",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33228366/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com