Ios 惰性实例化不工作

Ios 惰性实例化不工作,ios,lazy-initialization,Ios,Lazy Initialization,我在.h文件中声明了一个名为cellTitles的属性。在我的.m文件中,我有如下方法: -(NSArray *)cellTitles { if(!_cellTitles){ _cellTitles = [[NSArray alloc] initWithObjects:@"several strings", nil]; NSLog(@"Home Array Created"); } return _cellTitles; } 但是当我参考

我在.h文件中声明了一个名为
cellTitles
的属性。在我的.m文件中,我有如下方法:

-(NSArray *)cellTitles
{
    if(!_cellTitles){
        _cellTitles = [[NSArray alloc] initWithObjects:@"several strings", nil];
        NSLog(@"Home Array Created");
    }
    return _cellTitles;
}

但是当我参考
\u cellTitles
self.cellTitles
时,并没有创建
数组。我有几个NSLog都说阵列有0个对象。我需要更多吗。一些答案说我需要合成,但据我所知,这不再是必要的。

确保你的属性被强赋值

@property (nonatomic, strong) NSArray *cellTitles;

很抱歉,我不知道如何使代码更具可读性。能否显示您的属性声明,并显示您用于访问属性的代码?作为猜测,是否已在类构造函数中创建了_cellTitles?很好,请同时显示类的
init
方法。是否设置了断点来验证调用了此代码?您的属性是否声明为(非原子,强)?——这是不对的,如果您想正确的话,您可以延迟加载一个弱属性,但在这种情况下,任何其他对象似乎都不会持有对数组的强引用。编辑答案。大多数情况下,您希望具有可变子类的对象是
copy
。。只是说;)