我有一种偶尔会被调用的方法。它依赖于我不想实例化的属性,除非调用该方法,但同时我不想重新实例化该属性(如果已经实例化)。这是什么延迟加载?
我目前正在使用:
property = property ?? Property()
这似乎工作正常,但我想对这种方法进行健全检查。
答案 0 :(得分:3)
您所要做的就是将该属性声明为lazy,并且只在需要时才会初始化。
class MyClass {
lazy var myLazyArray = [String]()
}
var myObject = MyClass() // myObject.myLazyArray still not initialized
myObject.myLazyArray.append("hello") // Now we're in business!
print(myObject.myLazyArray)