Iphone 在哪里可以启动阵列?

Iphone 在哪里可以启动阵列?,iphone,objective-c,arrays,init,Iphone,Objective C,Arrays,Init,我有一个按钮,按下时执行一个动作。我想给数组添加一个值。按下按钮后确定该值。但是,当我在按钮操作中初始化数组时,数组每次都会重置,从而清除数组。我想保留数组值。如何保留数组值?我应该在其他地方初始化数组吗?如果是,我可以在哪里 在创建新阵列之前,请检查是否还没有阵列 if(!array) array = [[NSMutableArray alloc] init]; // ... [array addObject:myValueToAdd]; 在创建新阵列之前,请检查是否还没有阵列

我有一个按钮,按下时执行一个动作。我想给数组添加一个值。按下按钮后确定该值。但是,当我在按钮操作中初始化数组时,数组每次都会重置,从而清除数组。我想保留数组值。如何保留数组值?我应该在其他地方初始化数组吗?如果是,我可以在哪里

在创建新阵列之前,请检查是否还没有阵列

if(!array)
    array = [[NSMutableArray alloc] init];

// ...

[array addObject:myValueToAdd];

在创建新阵列之前,请检查是否还没有阵列

if(!array)
    array = [[NSMutableArray alloc] init];

// ...

[array addObject:myValueToAdd];
你的陈述-

"However, when I initialize the array in the button action, 
 the array resets every time, clearing the array"
不要在按钮操作中初始化数组。在外部将其初始化为类的属性或使其成为全局属性

在按钮的操作中,只需将该项作为
[self.myArray addObject:myObject]添加到数组中

您的语句-

"However, when I initialize the array in the button action, 
 the array resets every time, clearing the array"
不要在按钮操作中初始化数组。在外部将其初始化为类的属性或使其成为全局属性



在按钮的操作中,只需将该项作为
[self.myArray addObject:myObject]

添加到数组中,您所提到的一切似乎都是您的逻辑缺陷,与它的实际行为无关。我们不可能在不查看代码的情况下给出正确的解决方案:)如果您在按钮操作中初始化数组,那么您的数组似乎只在方法的局部范围内。您所提到的一切似乎都是您的逻辑缺陷,而与它的实际行为无关。我们不可能在不查看代码的情况下给出正确的解决方案:)如果在按钮操作中初始化数组,则数组似乎仅在方法的局部范围内。不要将其设置为全局的,如果它不属于操作方法的类,则将其放在模型类中。永远不要使用全局变量。这是一个很好的解决作为一个ivar。@Josh Caswell你是对的。不要让它全球化。我们的想法是解释初始化必须是一个,并且应该在所有方法中都可用。不要使其成为全局的,如果它不属于action方法的类,则将其放入模型类中。永远不要使用全局变量。这是一个很好的解决作为一个ivar。@Josh Caswell你是对的。不要让它全球化。我们的想法是解释初始化必须是一个,并且应该在所有方法中都可用。我可以这样做吗!阵列?你不是必须定义数组才能知道是否有一个吗?@jsttn那么,
array
显然应该被实际数组的名称替换。或者你什么意思?好的。那么,您是在if语句中定义数组吗?如果是,它如何知道数组是什么?@jsttn-Uhm。。。就像Luwe说的,看起来你的阵列只是在行动的局部范围内?!如果您想让阵列在范围内停留更长时间,例如按下两个按钮,您必须将其放置在其他位置(您很可能希望将其存储在ivar中),我可以这样做吗!阵列?你不是必须定义数组才能知道是否有一个吗?@jsttn那么,
array
显然应该被实际数组的名称替换。或者你什么意思?好的。那么,您是在if语句中定义数组吗?如果是,它如何知道数组是什么?@jsttn-Uhm。。。就像Luwe说的,看起来你的阵列只是在行动的局部范围内?!如果您想让阵列在范围内停留更长时间,例如按下两个按钮,则必须将其放置在其他位置(您很可能希望将其存储在ivar中)