gpt4 book ai didi

ios - 跟踪哪些上传有效?

转载 作者:行者123 更新时间:2023-11-28 07:19:08 26 4
gpt4 key购买 nike

我正在尝试使用 PHP 将记录从 Core Data 上传到 SQL 服务器。一次上传一条记录工作正常,但由于 uploadTask 是异步的,我无法弄清楚如何跟踪哪条记录成功(因此我可以将其从 Core Data 中删除)。当我调用 URLSession.shared.uploadTask 时,我将一个完成处理程序传递给它,无论如何当该处理程序被调用时我是否可以访问我用来调用它的实际数据记录?

for data in result {
let parameters: [String: Any] = [ "date": data.value(forKey: "date") ?? -999]
let uploadData = parameters.percentEscaped().data(using: .utf8)
let task = URLSession.shared.uploadTask(with: urlrequest, from: uploadData) { httpdata, response, error in
if let error = error {
print ("error: \(error)")
return
}
data.setValue(1, forKey: "toBeDeleted")
}

task.resume()
}

我试图在完成 block (在完成 block 外定义)中设置的“数据”对象不是我想的那样!

最佳答案

代码底部的 data(如果你明白我的意思)总是与代码顶部的 data 相同(在 for 循环)。我唯一能看出你可能做错的是你在说

data.setValue(1, forKey: "toBeDeleted")

不用担心你在哪个线程。你应该进入主线程,这样你就不会在不同的线程上与你的数据对话:

DispatchQueue.main.async {
data.setValue(1, forKey: "toBeDeleted")
}

如果这不起作用,则问题出在其他地方,即 result 不包含您认为它包含的数据。

(实际上,我不明白您为什么要为 data 设置任何值。如果您的目标是与数据库对话并删除该对象,请立即在此处删除它.否则就会出现问题,你什么时候真正去寻找这些待删除的记录并删除它们。)

关于ios - 跟踪哪些上传有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58651705/

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