【问题标题】:Correct way to declare an NSArray (Memory-Wise)声明 NSArray 的正确方法(Memory-Wise)
【发布时间】:2011-05-21 15:49:03
【问题描述】:

我有一个具有非原子属性和保留属性的 NSArray。我想知道的是我是否以正确的方式初始化它,以便保留计数应该是它应该是什么?

_lengthArr 是 my.h 中 lengthArr 的@synthesized ivar

@synthesize lengthArr = _lengthArr;

_lengthArr = [[NSArray arrayWithObjects:@"10 Minutes", @"20 Minutes", @"30 Minutes", @"1 Hour", @"2 Hours", @"5 Hours", @"5 Hours +", nil] retain];

【问题讨论】:

    标签: memory-management nsarray


    【解决方案1】:

    您正在那里分配一个 ivar,因此您发布的代码将执行您想要的操作。你也可以使用_lengthArr = [[NSArray alloc] initWithObjects:...],这样可以避免无用的自动释放。

    或者你可以做self.lengthArr = [NSArray arrayWithObjects:...] 让setter自动保留它,虽然建议在初始化方法中避免这种情况。

    【讨论】:

    • 已经在.h中赋值了。我想我在帖子中没有说清楚。请再看看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 2020-11-24
    相关资源
    最近更新 更多