SwiftUImacOSfetchjson错误[logging]卷不支持数据保护,剥离SQLITE_OPEN_FILEPROTECTION_*标志

我厌倦了为我的 IOS 应用程序构建一个 macOS 应用程序(Xcode 12,SwifUI)。要从我的网站获取 json 数据,我需要一个获取请求(没有 API 密钥)。我在 medium、hackingwithswift 等上找到了几个样本,但我总是保持相同的错误。

[logging] volume does not support data protection, stripping SQLITE_OPEN_FILEPROTECTION_* flags

我想知道为什么我只在 macOS 项目上出现这个错误,因为我的 IOS 版本工作正常。

class FetchDeviceInfo: ObservableObject {

    @Published var deviceInfo = [DeviceData]()

    init() {

        let url = "https://yourURL"

        let session = URLSession(configuration: .default)

        session.dataTask(with: URL(string: url)!) { (data, _, _) in

            guard let json = data else{return}

            do{

                let data = try JSONDecoder().decode([DeviceData].self, from: json)

                print(images)

                DispatchQueue.main.async {
                    self.deviceInfo = data
                }
            }
            catch{
                print(error.localizedDescription)
            }
        }
        .resume()
    }
}

如果有人可以帮助我,我会很高兴。

编辑:我找到了一种获取数据的方法,但我仍然收到错误消息。我也用“专业”的 Json API 对其进行了测试,但错误仍然发生,所以我希望使用非专业的 JSON 服务器不是我的错。

回答

看起来这个错误是由 URLSession 的“默认”配置引起的,该配置使用全局单例凭据、缓存和 cookie 存储对象。

将配置设置为“临时”配置会消除此错误,因为它不会将缓存、cookie 或凭据写入磁盘。这可以通过实例化一个URLSession对象并使用它代替URLSession.default. 例如,

let urlSession = URLSession(configuration: .ephemeral)

urlSession.dataTask { ... }

有关 NSURLSessionConfiguration 的更多信息,请参阅 Apple 的文档(https://developer.apple.com/documentation/foundation/nsurlsessionconfiguration)


以上是SwiftUImacOSfetchjson错误[logging]卷不支持数据保护,剥离SQLITE_OPEN_FILEPROTECTION_*标志的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>