我有一个偶尔被调用的方法。它依赖于一个我不希望实例化的属性,除非调用了该方法,但与此同时,如果已经实例化了该属性,我也不想重新实例化该属性。这是延迟加载的目的吗?
我目前正在使用:
property = property ?? Property()
似乎工作正常,但我想对此方法进行完整性检查。
最佳答案
您所要做的就是将属性声明为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)