Swift中懒加载如下
lazy var loadArray:NSMutableArray? = {
let array = NSMutableArray()
return array
}()
如果你在viewDidDisappeare中使得loadArray = nil
func viewDidDisappear(animated: Bool) {
self.loadArray = nil
}```
如果你的ViewController是Push到另一个ViewController,然后又push回来,此时你的ViewController并没有release掉,当你再次使用loadArray时就是nil!!!!因为它不会判断loadArray为nil时重新加载,这是需要注意的,也就是说
**如果你用懒加载添加了一个属性,如果要主动释放该属性,使该属性=nil,这样是不行的,除非你在viewdidLoad中重新加载,这样一来就重复了,所以如果你要主动释放一些属性,那么这些属性就最好不要用lazy,如果你释放了这些属性但是VC并没有release掉的话,lazy属性不会重新加载**
然而,在OC中是这样做的
- (NSMultableArray *)loadArray {
if(!_loadArray){
_loadArray = [NSMultableArray new];
}
return _loadArray;
}```
如果loadArray为nil的话会重新加载!!!
用Swift虽然简洁,但是很多地方用起来,你都不知道哪里错了,特别是在对nil这个东西的处理上,需要非常注意
网友评论