gpt4 book ai didi

Swift 在闭包中使用函数参数

转载 作者:可可西里 更新时间:2023-11-01 01:39:27 26 4
gpt4 key购买 nike

我只是想在没有内存泄漏的情况下在 swift 闭包中使用函数参数,所以我只是想确认我是否按照以下方式进行操作是否会出现任何与内存相关的问题?请告诉我

func someMethod(someValue: String) {
weak var weakSelf = self
var copyOfSomeValue: String? = someValue.copy() as? String
self.someOtherMethodWithCompletion(completionHandler: { () -> Void in
if let strongSelf = weakSelf, let originalValue = copyOfSomeValue {
strongSelf.updateMyViewWithText(originalValue)
}
})
}

最佳答案

Stringvalue type .即使关闭capture它们通过引用,除非您要在捕获后更改 someValue ,否则无需复制。即便如此,您最好还是使用捕获列表 [someValue],当您需要声明 [weak self] 时也会使用它。

使用 weakunowned 是视情况而定,阅读它们 here .

func someMethod(someValue: String) {
someOtherMethodWithCompletion { [weak self] in
self?.updateMyViewWithText(someValue)
}
}

关于Swift 在闭包中使用函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31609800/

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