【发布时间】:2014-07-25 11:10:39
【问题描述】:
在 Objective-C 中,我有这个函数来过滤 NSSet 的类类型数组:
+ (NSSet *)filterSubjectsSet:(NSSet *)subjects forClasses:(NSArray *)classes
{
NSSet *filterSet = [subjects objectsPassingTest:^(id obj, BOOL *stop) {
return [classes containsObject:[obj class]];
}];
return filterSet;
}
我正在努力寻找一种在 Swift 中实现相同功能的简洁方法。这就是我希望的工作:
class func filterSubjectsSet(subjects: NSSet, forClasses classes: [AnyClass]) -> NSSet {
let set = subjects.objectsPassingTest() {
find(classes, object_getClass($0)) != nil
}
return set
}
但我收到此错误:
Type 'AnyObject.Type' does not conform to protocol 'Equatable'
我该怎么做?
【问题讨论】:
-
你不应该测试一个对象是否是一个类(或其子类)的实例,而不是它的类正是那个类吗?