Ios 在UIView首次加载时定义和初始化NSArray,还是仅在满足条件时定义和初始化NSArray,内存效率更高?

Ios 在UIView首次加载时定义和初始化NSArray,还是仅在满足条件时定义和初始化NSArray,内存效率更高?,ios,objective-c,Ios,Objective C,当程序第一次启动时,在viewDidLoad中初始化NSArray更好,还是仅在满足条件时定义NSArray更好 基本上,我在我的一个方法的IF条件下初始化了一个NSArray。此方法可能会被多次调用,您想知道如果在方法中创建并销毁NSArray,是否会更好地占用内存,或者最好在viewDidLoad中定义一次并在方法中引用它 如果我不清楚,请告诉我 谢谢仅在您需要时创建任何数据采集,这样您可以确保程序/屏幕最初快速启动。这称为延迟加载,应尽可能采用这种方法 如果您正在使用NSMutableAr

当程序第一次启动时,在viewDidLoad中初始化NSArray更好,还是仅在满足条件时定义NSArray更好

基本上,我在我的一个方法的IF条件下初始化了一个NSArray。此方法可能会被多次调用,您想知道如果在方法中创建并销毁NSArray,是否会更好地占用内存,或者最好在viewDidLoad中定义一次并在方法中引用它

如果我不清楚,请告诉我


谢谢

仅在您需要时创建任何数据采集,这样您可以确保程序/屏幕最初快速启动。这称为延迟加载,应尽可能采用这种方法

如果您正在使用NSMutableArray并在运行时管理它,您可以对延迟加载执行类似的操作,并在不需要时从内存中清除它。Add helper方法要在数组中添加和删除对象,数组在需要时自动创建,在数组为空时从内存中删除

- (void)addObject:(NSObject *)value
{
    if (value == nil) return;

    if (_collection == nil) {
        _collection = [[NSMutableArray alloc] init];
    }
    [_collection addObject:value];
}

- (void)removeObject:(NSObject *)value
{
    if (value == nil) return;

    [_collection removeObject:value];

    if ([_collection count] == 0) {
        [_collection release], _collection = nil;
    }
}

如果必须多次使用同一数组,请创建对该数组的全局引用,并在viewDidLoad或model类中对其进行初始化。您的数组有多大?嗨,suhit,如果您将注释作为答案发布,我将接受:)