swift懒加载(lazy load)VS OC懒加载
懒加载可以让你不用关心变量的创建时机,等到真正使用的时候才去创建并且能保证在使用的时候已经初始化完毕,在一定程度上可以提高性能。 OC懒加载的原理: 重写变量的 getter 方法,在getter方法里判断变量 if 变量 == nil 则初始化变量 ,否则直接返回已经初始化完毕的变量,所以我们在调用懒加载的变量时 一定要使用 self.变量名(通过getter方法取值)。 话不多说先看一段OC懒加载实现: - (UICollectionViewFlowLayout *)flowLayout { if (!_flowLayout) { _flowLayout = [[UICollectionViewFlowLayout alloc] init]; _flowLayout.scrollDirection = UICollectionViewScrollDirectionHorizontal; _flowLayout.minimumInteritemSpacing = 0; _flowLayout.minimumLineSpacing = 0; } return _flowLayout; } 我们在调用 self.flowLayout 的时候其实就是在调用变量的 getter 方法。 再看swift 中的懒加载实现: lazy var dataSource = Array<String