1

これは非常に基本的な質問だと思いますが、Nick Kuh の本「Foundation iPhone App Development」のチュートリアルを行っていますが、この行の内容を完全には理解していません。

int count = [自己カウント];

...本当に「自分」から始まるの?

コード全体は次のとおりです。

#import "NSMutableArray+Shuffle.h"

@implementation NSMutableArray (Shuffle)

- (void)shuffle {

int count = [self count];

NSMutableArray *dupeArr = [self mutableCopy];
count = [dupeArr count];
[self removeAllObjects];

for (int i = 0; i < count; i++) {

    // Select a random element between i and the end of the array to swap with.
    int nElement = count - i;
    int n = (arc4random() % nElement);
    [self addObject:dupeArr[n]];
    [dupeArr removeObjectAtIndex:n];

}

}

@end
4

2 に答える 2

5

あなたは NSMutableArray のカテゴリに属しているため、self は NSMutableArray のインスタンスを参照します。count は、配列に含まれるオブジェクトの数を返す NSMutableArray のプロパティです。したがって、問題の行は、NSMutableArray の現在のインスタンス内のアイテムの数を取得し、それを int 型の「count」という名前の変数に格納することを示しています。

int count = [self count];

これは、構文的に有効なままで、次のように書くこともできます。

int count = self.count;
于 2013-08-09T19:45:24.873 に答える
3

それ自体で「count」メソッドを呼び出しています。Objective-C を初めて見たときによくあることですが、構文に戸惑うかもしれません。Java では、次のようになります。

int count = this.count();
于 2013-08-09T19:45:34.573 に答える