gpt4 book ai didi

swift - 是一个属性的 setter/getter ,可以避免捕获内部 block

转载 作者:行者123 更新时间:2023-11-30 10:06:51 24 4
gpt4 key购买 nike

例如,我有以下 Controller :

class MyController : UIViewController
{
var capturedProperty : Property?

func getterForCapturedProperty() -> Property?
{
return capturedProperty
}

func viewDidAppear()
{
NetworkOperationBlock{
someResult -> Void in

self.getterForCapturedProperty().result = someResult
}
}
}

现在,尽管我认为对属性进行 setter/getter 不应影响 self 是否被捕获,但我仍然不确定。

有人可以快速解释一下这个例子吗?

最佳答案

不,这不会影响捕获。

如果您不希望该 block 对 self 有强引用,则应将其标记为无主:

let myBlock: /* type */ = { [unowned self] in
// ...
}

更多信息:https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/AutomaticReferenceCounting.html (向下滚动到“解决闭包的强引用循环”)。

关于swift - 是一个属性的 setter/getter ,可以避免捕获内部 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35459945/

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