模糊的概述是我正在一个NSArray
Category 中编写一个方法,该方法将采用 aClass
并将 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
Sooo,顺便说一句,我的问题。NSObject.h 显示 isMemberOfClass: 具有以下签名:
-(BOOL)isMemberOfClass:(Class)aClass;
当我在 XCode 中键入此方法时,自动完成提示一个方法签名,如下所示:
[self isMemberOfClass:(__unsafe_unretained Class)]
我的问题是:
1)为什么NSObject.h中的方法原型和XCode的自动补全有差异?
2)在我自己的方法中(显示在这个问题的开头),我应该包含__unsafe_unretained
修饰符吗?如果是这样,为什么?如果不是,为什么不呢?
谢谢!