我希望能够调用属性ConferenceNumberDirectory.att
,如果数字目录/数组存在,我们将返回它,如果不是,我们将解析该条目。
///Builds, stores, retrieves and queries conference number directories.
class ConferenceNumberDirectory {
static var att: [ConferenceNumber] = {
build(from: ConferenceNumberDirectory.jsonArray)
print("Am I lazy!?")
return ConferenceNumberDirectory.att
}()
build
是一个修改ConferenceNumberDirectory.att
的函数。当我尝试调用它时,模拟器似乎卡住,内存使用量稳步上升,直到我停止运行。
我有办法使用计算属性吗?
答案 0 :(得分:4)
您正在创建一个懒惰的计算属性。只需:
class ConferenceNumberDirectory {
static var att: [ConferenceNumber] = {
let result = build(from: ConferenceNumberDirectory.jsonArray)
print("Am I lazy!?")
return result
}()
更改build
方法会返回一个值,而不是尝试设置att
。