Проверка NSP предиката для класса объекта - PullRequest
28 голосов
/ 09 ноября 2011

У меня есть массив UIView объектов. Я хочу вызвать - (NSArray *)filteredArrayUsingPredicate:(NSPredicate *)predicate для этого массива, чтобы получить массив MyCustomView объектов.

Как кодировать предикат с помощью "isKindOf:"?

Ответы [ 3 ]

52 голосов
/ 09 ноября 2011

Попробуйте ( не рекомендуется )

[NSPredicate predicateWithFormat: @"className == %@", [someObject className]]

Или

[NSPredicate predicateWithFormat: @"class == %@", [someObject class]]
28 голосов
/ 27 июля 2012

Я получил ошибки, используя метод Джефа.Это сработало для меня.

NSPredicate *predicate = [NSPredicate predicateWithFormat:
                                              @"self isKindOfClass: %@", class];

Источник: https://stackoverflow.com/a/2556306/168594

0 голосов
/ 09 ноября 2011

Как насчет использования -className в качестве ключа?

NSPredicate* foo = [NSPredicate predicateWithFormat: @"className == %@", @"MyCustomView"];
...