0

我一直在尝试使用 NSURLSession 的后台上传,但偶尔会遇到这个崩溃

Sep 25 10:01:48 ipad backboardd[29] <Warning>: MyApp[11829] has active assertions beyond permitted time: 
{(
    <BKProcessAssertion: 0x166b1770> identifier: com.apple.nsnetworkd.handlesession process: MyApp[11829] permittedBackgroundDuration: 30.000000 reason: backgroundDownload owner pid:8440 preventSuspend  preventThrottleDownUI  preventIdleSleep  preventSuspendOnSleep 
)}

调试代码,我发现当崩溃发生时,该application: handleEventsForBackgroundURLSession:completionHandler:方法被调用,在那里我重新创建会话并存储完成处理程序,如Apple Documentation reccomends,但任务端的委托从未被调用,也不是URLSessionDidFinishEventsForBackgroundURLSession:,这解释了崩溃,因为我在 NSURLSession 委托中处理完上传结束后调用了完成处理程序。

谁能告诉我为什么不叫代表?

4

1 回答 1

1

我发现了问题,我的代码中的一个错误导致我有时调用完成处理程序两次。下次唤醒应用程序时,从未调用过委托,因此也没有调用完成处理程序,这导致了崩溃

于 2014-09-26T18:50:41.713 回答