gpt4 book ai didi

ios - 为什么我们可以从 didSet 属性观察者返回

转载 作者:行者123 更新时间:2023-11-28 14:48:42 26 4
gpt4 key购买 nike

当我在 didSet 中创建一个递归时,实际上我发现我可以只放一个 return 并且程序从 didSet 退出。但是我没有找到任何地方(我搜索了很长时间)我可以放一个返回词来退出 didSet。那么,didSet 是否像计算属性一样工作,我们可以在其中返回值?如果有人知道什么,我将不胜感激。谢谢。

 class AppDetailController: UICollectionViewController, UICollectionViewDelegateFlowLayout {
var app : App? {
didSet {
if app?.screenshots != nil {
return
}
if let id = app?.id {
let urlString = "https://api.letsbuildthatapp.com/appstore/appdetail?id=\(id)"
URLSession.shared.dataTask(with: URL(string: urlString)!, completionHandler: { (data, response, error) in
if error != nil {
print(error)
}
do {
let json = try(JSONSerialization.jsonObject(with: data!, options: .mutableContainers ))
let appDetail = App()
appDetail.setValuesForKeys(json as! [String: AnyObject])


self.app = appDetail
} catch let error as NSError {
print(error.localizedDescription)
}
}).resume()
}

}
}

最佳答案

不,didSet 与计算属性没有任何关系。 didSet{}willSet 是针对存储属性的,它们起到了 didChangeValuewillChangeValue 的作用。因此,您可以更改类或结构中的其他数据,或根据更改要为其定义 didSetwillSet 的属性的值运行某些方法。

它们像函数一样工作并具有属性。 willSetnewValue 为您提供新值,oldValuedidSet 提供旧值在更改其值(value)之前为您的属性(property)设定值(value)。您可以像这样更改这些属性的名称:

willSet(myNewValue) { }
didSet(myOldValue) { }

关于ios - 为什么我们可以从 didSet 属性观察者返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50022831/

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