当我在 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()
}
}
}