gpt4 book ai didi

ios - 我应该为 Realm.write() 使用 [unowned self] 吗?

转载 作者:行者123 更新时间:2023-11-28 10:10:45 25 4
gpt4 key购买 nike

我在应用程序中遇到了一些奇怪的内存问题,我想知道我在这里做的事情是否正确。我使用 Realm 并且有例如:

try! self.realm.write {
self.realm.add(newItem)
}

但我想知道我是否无意中造成了一个保留周期,所以也许应该这样做:

try! self.realm.write { [unowned self] in
self.realm.add(newItem)
}

哪个是正确的,为什么?

最佳答案

如果您查看write 方法声明,您会发现闭包是非转义的。因此,您既不需要使用 weak 也不需要使用 unowned。不会导致retain cycle。

public func write(_ block: (() throws -> Void)) throws {
beginWrite()
do {
try block()
} catch let error {
if isInWriteTransaction { cancelWrite() }
throw error
}
if isInWriteTransaction { try commitWrite() }
}

关于ios - 我应该为 Realm.write() 使用 [unowned self] 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48421043/

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