在这种情况下,“int count = [self count]”是什么意思?

时间:2013-08-09 19:43:08

标签: objective-c

我想这是一个非常基本的问题,但我正在做一本来自Nick Kuh的书“Foundation iPhone App Development”的教程,我不完全明白这一行:

  

int count = [self 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

2 个答案:

答案 0 :(得分:5)

由于您属于NSMutableArray类别,因此self指的是NSMutableArray的实例。然后count是NSMutableArray的一个属性,它返回数组包含的对象数。因此,有问题的行说明获取当前NSMutableArray实例中的项目数,并将其存储在类型为int的名为“count”的变量中。

int count = [self count];

这也可以写成如下,同时保持语法上有效。

int count = self.count;

答案 1 :(得分:3)

它正在调用'count'方法。语法可能会让你失望,就像你第一次看到Objective-C时的情况一样。在Java中,它看起来像这样:

int count = this.count();