gpt4 book ai didi

ios - Swift Rest 客户端连接速度缓慢

转载 作者:行者123 更新时间:2023-11-30 12:22:52 25 4
gpt4 key购买 nike

我在实现与长延迟相关的 REST 客户端时遇到性能问题。我的 Android 应用程序或任何添加到浏览器的 REST 客户端 均不存在问题,因此它与后端问题无关。

这是我执行 API 调用的函数:

func getRecordsMethod(completion: @escaping ((_ result: Data) -> Void)){
let defaults = UserDefaults.standard
let username = defaults.object(forKey: "username") as! String
let password = defaults.object(forKey: "password") as! String
let loginString = String(format: "%@:%@", username, password).description
let loginData = loginString.data(using: String.Encoding.utf8)
let base64LoginString = loginData?.base64EncodedString()
let url = URL (string: apiURL + getPersonalBests )
var request = URLRequest(url: url!)
request.httpMethod = "GET"
request.setValue("Basic " + base64LoginString!, forHTTPHeaderField: "Authorization")
let task = URLSession.shared.dataTask(with: request) { data, response, error in

if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode == 200 {
completion(data!)
}

}
task.resume()
}

以及我如何在我的 ViewController 中调用它:

override func viewDidLoad() {
super.viewDidLoad()
populateRecords()
}
func populateRecords(){


self.records.removeAll()
apiRestManager.getRecordsMethod() {
(result: Data) in
let json = JSON(data: result)
for (_, subJson) in json {
// processing response- adding to personalBestTable
}
DispatchQueue.main.async {
self.personalBestTable.reloadData()
}

}




}

最大的问题是,在函数 populateRecords 启动后,在我的后端看到调用后大约有 2-3 秒的延迟(在立即进行处理和表重新加载之后)

任何人都可以给我提示如何优化请求速度吗?

最佳答案

UserDefault 获取主要威胁的数据可能会导致延迟。

使用以下代码更改您的 viewDidLoad 方法

        override func viewDidLoad() {
super.viewDidLoad()

let concurrentQueue = DispatchQueue(label: "apiQueue", attributes: .concurrent)

concurrentQueue.async {
populateRecords()
}
}

关于ios - Swift Rest 客户端连接速度缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44583108/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com