2011-11-09 3 views
21

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

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

ответ

50

Try (depracated)

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

Или

[NSPredicate predicateWithFormat: @"class == %@", [someObject class]] 
+0

работы с классом. – user500

+0

Работает с 'className' тоже для меня. Хотя «класс» выглядит чище. – Jef

+0

Что более подходит? "=" или "LIKE"? – user500

-1

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

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

В iOS API я не вижу ничего подобного '-className' ... – user500

24

У меня возникли ошибки с использованием метода Джефа. Это работало для меня.

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

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

Смежные вопросы