【问题标题】:NSURLSession initialization doesn't succeed and freezes the appNSURLSession 初始化不成功并冻结应用程序
【发布时间】:2014-10-09 09:35:14
【问题描述】:

我对@9​​87654321@ 有疑问。我的 iOS8 iPhone 应用程序依赖这个类来连续(每 5-10 秒)从服务器获取数据。因此,当我初始化一个旨在与服务器交互的自定义​​控制器时,我创建了一个会话对象。我就是这样做的:

override init() { 
    super.init()

    var configuration = NSURLSessionConfiguration.backgroundSessionConfigurationWithIdentifier(thisSessionIdentifier)
    session = NSURLSession(configuration: configuration, delegate:self, delegateQueue:NSOperationQueue.mainQueue())

    ...  
}

直到昨天一切正常。今天,当我在物理 iPhone 6 上测试它时,调用 NSURLSession 完全阻止了该应用程序。 这不会在模拟器上发生。

卸载应用并重新安装(即使使用不同的捆绑包 ID)也不能解决问题。

有人知道吗?

【问题讨论】:

  • 不是您的问题的答案,但每分钟轮询服务器 6-12 次将大大消耗设备的电池电量。
  • 感谢您的观察。当然,这对电池来说是一项挑战,当您还必须以可用的最大精度将您的位置发送到服务器时,这将更具挑战性。但是,这在我们的特定环境中不是问题。

标签: ios swift ios8 nsurlsession iphone-6


【解决方案1】:

我在 iOS7 上的几个真实用户中遇到过这种情况。他们唯一的出路是擦除设备并从备份中恢复。

这在 iOS8 上仍然是一个令人失望的问题。

【讨论】:

  • 感谢您分享您的经验。但是,可能不需要恢复设备。在我的情况下 - 如果我没记错的话 - 我通过卸载应用程序、重新启动设备然后再次安装应用程序来解决它。
【解决方案2】:

我遇到了同样的问题。我怀疑这是一个 iOS 错误。

见:Why does connecting back to an iOS background NSURLSession take too long waiting on a lock, crashing the app?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-11
    • 2016-09-16
    相关资源
    最近更新 更多