我可以在运行方法之前创建一个数组吗?

时间:2013-02-26 22:21:59

标签: objective-c

int indexOfArray = 0;


-(void)pushNumber:(double)number{
    if(self.numArray == NULL)
        self.numArray = [NSMutableArray array];
    indexOfArray = self.numArray.count;
    [self.numArray insertObject:[NSNumber numberWithDouble:number] atIndex:(indexOfArray)];
    indexOfArray--;
}

这是我正在做的推送方法的代码部分。我想要设置它的方法是将数字推到数组的末尾,因为这样我就可以使用lastObject弹出我推入的第一个数字。我有Java经验,但我自己一直在使用Objective-C,因此我不确定我所做的是否正确。我现在知道的是,这个方法运行时indexOfArray将重置其计数,我不希望这样。我希望能够在方法之前初始化数组,因此我可以有一个常量的大小,然后我可以在每次调用此方法时递减。

要清楚,这是我在空闲时间制作的计算器应用程序。我想能够在操作员,用户按下清除或用户按下indexOfArray按钮后每个用户按下一个号码时重置=

1 个答案:

答案 0 :(得分:0)

如果您在Java中寻找等效的构造函数,请覆盖-init。例如:

- (id)init
{
    self = [super init]
    if (!self) {
        return nil;
    }

    self.numArray = [NSMutableArray array];

    return self;
}

然而,正如其他人所说,如果你的类只是一个堆栈,那么使用NSMutableArray可能会更容易,因为它有类似堆栈访问的方法。

此外,如果int indexOfArray = 0;实际上是在方法旁边定义的,那么你有一个全局变量而不是实例(/ member)变量,你可能认为这是你要声明的。

(如果这些内容对您来说很新,我建议您阅读Apple的Cocoa Core CompetenciesProgramming With Objective-C条款