2013-08-09 3 views
1

Я предполагаю, что это на самом деле основной вопрос, но я делаю учебник из книги Ника Kūh в «Фонд iPhone App развития» и я не в полной мере понять, что эта строка:Что означает «int count = [self count]» в этом контексте?

INT кол = [счета само];

... действительно начинается с «я»?

Вот весь код:

#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 

ответ

5

Поскольку вы находитесь в категории NSMutableArray, сам относится к экземпляру NSMutableArray. Тогда count является свойством NSMutableArray, который возвращает количество объектов, содержащихся в массиве. Таким образом, строка, о которой идет речь, получает количество элементов в текущем экземпляре NSMutableArray и сохраняет это в переменной с именем «count» типа int.

int count = [self count]; 

Это также может быть написано следующим образом, оставаясь синтаксически действительным.

int count = self.count; 
3

Это вызов метода «count» для себя. Синтаксис может отбросить вас, как это часто бывает, когда вы сначала видите Objective-C. В Java это будет выглядеть так:

int count = this.count();