Расплывчатый обзор заключается в том, что я пишу метод в категории NSArray
, который будет принимать Class
и фильтровать Array до элементов, которые являются членами этого класса. Что-то вроде:
@implementation NSArray(filter)
-(NSArray*)objectsOfClass:(Class)aClass {
NSMutableArray *ret = [[NSMutableArray alloc] init];
for (id obj in self)
if ([obj isMemberOfClass:aClass])
[ret addObject:obj];
return [NSArray arrayWithArray:ret];
}
@end
Сооо, с этим с дороги, на мой вопрос. NSObject.h показывает, что isMemberOfClass: имеет следующую подпись:
-(BOOL)isMemberOfClass:(Class)aClass;
Когда я набираю этот метод в XCode, автозаполнение подсказывает подпись метода, которая выглядит так:
[self isMemberOfClass:(__unsafe_unretained Class)]
Мои вопросы:
1) Why the discrepancy between the method prototype in NSObject.h and XCode's autocompletion?
2) In my own method (shown at the start of the this question), should I include the __unsafe_unretained
modifier? If so, why? If not, why not?
Благодаря!