我想这是一个非常基本的问题,但我正在做一本来自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
答案 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();