json - SwiftUI macOS fetch json error [logging] 卷不支持数据保护,剥离 SQLITE_OPEN_FILEPROTECTION_* flags\
问题描述
我厌倦了为我的 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 服务器不是我的错。
解决方案
看起来此错误是由使用全局单例凭据、缓存和 cookie 存储对象的 URLSession 的“默认”配置引起的。
将配置设置为“临时”配置会消除此错误,因为它不会将缓存、cookie 或凭据写入磁盘。这可以通过实例化一个URLSession
对象并使用它来代替URLSession.default
. 例如,
let urlSession = URLSession(configuration: .ephemeral)
urlSession.dataTask { ... }
有关 NSURLSessionConfiguration 的更多信息,请参阅 Apple 文档 ( https://developer.apple.com/documentation/foundation/nsurlsessionconfiguration )
推荐阅读
- android - 在android文本视图中动态绘制水平线
- javascript - 如何使用此脚本函数更改 textarea 的值?
- php - Laravel 5.5.* 目录结构不同
- javascript - 过滤值第二次点击显示所有元素
- spring-boot - Spring Boot:单元测试存储库方法的最佳策略是什么?
- javascript - 从没有数组的函数链中提取数据
- google-cloud-platform - 在 Apache Beam 数据流中使用 Spanner
- javascript - 在浏览器中充电之前自动加密javascript文件
- c++11 - 在 C++ 中的函数覆盖中,如何使用派生类 obj 从派生类函数中打印基类函数
- ios - 如何在ios swift3中使用SearchBar过滤detailTextLabel数据