У меня есть массив UIView объектов. Я хочу вызвать - (NSArray *)filteredArrayUsingPredicate:(NSPredicate *)predicate для этого массива, чтобы получить массив MyCustomView объектов.
UIView
- (NSArray *)filteredArrayUsingPredicate:(NSPredicate *)predicate
MyCustomView
Как кодировать предикат с помощью "isKindOf:"?
Попробуйте ( не рекомендуется )
[NSPredicate predicateWithFormat: @"className == %@", [someObject className]]
Или
[NSPredicate predicateWithFormat: @"class == %@", [someObject class]]
Я получил ошибки, используя метод Джефа.Это сработало для меня.
NSPredicate *predicate = [NSPredicate predicateWithFormat: @"self isKindOfClass: %@", class];
Источник: https://stackoverflow.com/a/2556306/168594
Как насчет использования -className в качестве ключа?
-className
NSPredicate* foo = [NSPredicate predicateWithFormat: @"className == %@", @"MyCustomView"];