前言:

在写项目的时候,发现一个 BUG:有一个 @propery 声明的可变数组,无论怎么增加子数组,都不会发生变化,且始终为 nil .

分析:

如果可变数组 NSMutableArray 没有在内存中创建的话,通过 @propery 创建私有属性,这个时候你要是想调用 addObjectFromArray 添加子数组,这种操作是没用的...因为它原来是 nil ,所以不论你怎么操作都始终为 nil .

[self.newsArray addObjectFromArray:a]; // newsArray 为 @propery 声明的属性(私有); a 为子数组

解决方案:

解决办法是用 LazyLoad 懒加载这个可变数组,在程序需要用到的时候就会在内存中开辟空间。

# pragma mark - lazyload
- (NSMutableArray *)newsArrary{
    if (!_newsArrary) {
        _newsArrary = [NSMutableArray array];
    }
    return _newsArrary;
}

标签: none

添加新评论