ios - 崩溃 : com. apple.root.default-qos

标签 ios swift multithreading grand-central-dispatch dispatch-async

我有一个相当简单的应用程序,它可以解析 RSS 提要并在表格 View 中显示它的内容。它在 App Store 上可用。我集成了 Crashlytics 崩溃报告。我最近收到两份报告。这些有点难以破译。

这发生在运行 iOS 10.2.1 的 iPhone 6 上。

enter image description here

这是来自运行 iOS 10.2.1 的 iPhone 5。

enter image description here

即使它说它因侵犯隐私而崩溃,我也没有访问任何需要在我的应用程序中获得许可的服务。

同时搜索 com.apple.root.default-qos 让我相信这可能与后台线程有关。我使用后台线程的唯一地方是解析 RSS 提要数据。

DispatchQueue.global(qos: .background).async {

    guard let data = try? Data(contentsOf: URL) else {
        return
    }

    do {
        let xmlDoc = try AEXMLDocument(xml: data)

        if let items = xmlDoc.root["channel"]["item"].all {
            self.posts.removeAll()

            for item in items {
                let title = item["title"].value ?? ""
                // ...
                self.posts.append(jobPost)
            }

            DispatchQueue.main.async {
                self.saveposts(self.posts)
                self.posts.sort { $0.publishDate > $1.publishDate }
                self.tableView.reloadData()
                UIApplication.shared.toggleNetworkActivityIndicator(show: false)
                self.toggleUI(enable: true)
                if self.refreshControl.isRefreshing { self.refreshControl.endRefreshing() }
            }

        }

    } catch let error as NSError {
        print("RSS parsing failed: \(error)")
        self.showErrorAlert(error)
        UIApplication.shared.toggleNetworkActivityIndicator(show: false)
        self.toggleUI(enable: true)
        if self.refreshControl.isRefreshing { self.refreshControl.endRefreshing() }
    }
}

我在运行 iOS 9.3.5 的 iPhone 5 和运行 iOS 10.2 的模拟器上测试了这段代码,但没有发生崩溃。

有没有其他方法可以解决这个问题?

最佳答案

我会仔细检查您的所有权限。就我而言,从 iOS10 开始,您需要权限才能将内容保存到用户的相机胶卷中。在我的应用程序中,我显示了默认的共享表,每当用户选择“保存照片”时,应用程序就会崩溃,并显示这些非常无用的错误消息之一。我加了

<key>NSPhotoLibraryAddUsageDescription</key>
    <string>Allow you to save charts and graphs from the app to your phone.</string>

到我的 info.plistclean & run。一切问题都解决了。

关于ios - 崩溃 : com. apple.root.default-qos,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42723130/

相关文章:

c++ - Windows 驱动程序、自旋锁获取和条件测试

另一个线程正在运行时,JavaFX UI 被阻塞

ios - 这个 SKShapeNode 渐变着色代码有什么问题?

iphone - 在我的 iPhone 应用程序中调用 rss

iOS - 信用卡 + PayPal 交易不是通过应用内购买

swift - 在下面的 Swift 代码中,为什么程序在到达 Break 时退出 while 循环?

java - 一个线程安全的最终一致性计数器

IOS:获取具有特定(非本地化)格式的当前日期/时间

ios - 在 Swift 中使用 hidesBackButton 隐藏导航栏中的后退按钮

swift - iOS : GMSPlacePickerViewController Country Restriction