0
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ユーザーがオペレーターの後に数字を押すたび、ユーザーがクリアを押すとき、またはユーザーがボタンを押すたびにリセットできるようにしたいと思い=ます。

4

1 に答える 1

0

Java のコンストラクターに相当するものを探している場合は、オーバーライドします-init。例:

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

    self.numArray = [NSMutableArray array];

    return self;
}

ただし、他の人が言ったように、クラスが単なるスタックの場合は、スタックのようなアクセスのためのメソッドがあるため、NSMutableArray を使用する方が簡単かもしれません。

また、int indexOfArray = 0;が実際にメソッドの横に定義されている場合は、インスタンス (/メンバー) 変数ではなく、宣言していると思われるグローバル変数を持っていることになります。

(これが初めての場合は、Apple のCocoa Core CompetenciesProgramming With Objective-C の記事を読むことをお勧めします)

于 2013-02-26T22:46:59.637 に答える