gpt4 book ai didi

ios - 如何正确地将弱引用传递给函数的调用者?

转载 作者:行者123 更新时间:2023-12-01 18:35:05 26 4
gpt4 key购买 nike

说你有...

class Boss {
func callback() { }
}

你有类似...
class Worker {
static func compute(forMe: Boss) {
.. do some work that takes 10 seconds ..
forMe?.callback()
}
}

所以:在 Boss的特定实例中的某个地方,假设 b,您调用类似...
 Worker.compute(forMe: self)

说10秒过去。说7秒, b不再存在(嗯,我希望它不再存在)。在10秒结束时,我希望 compute说:“哦,该死,似乎 forMe不再存在。我不会进行回调,而放弃。”

因此,“计算”内部的“forMe”应该很弱。 (我猜?)

真的,您如何在Swift中实现这个基本概念?

最佳答案

如果您的compute函数正在异步执行工作并获取回调,则它可以在该工作的闭包中弱地捕获参数:

static func compute(forMe: Boss) {
doSomethingAsync { [weak forMe] in
// forMe will be nil in here if it was deallocated before this is called
forMe?.callback()
}
}

关于ios - 如何正确地将弱引用传递给函数的调用者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60834611/

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