Проверка NSP предиката для класса объекта
У меня есть массив UIView
объекты. Я хочу позвонить - (NSArray *)filteredArrayUsingPredicate:(NSPredicate *)predicate
на этом массиве, чтобы получить массив MyCustomView
объекты.
Как кодировать предикат с помощью "isKindOf:"?
4 ответа
Решение
Попробуй (расстроенный)
[NSPredicate predicateWithFormat: @"className == %@", [someObject className]]
Или же
[NSPredicate predicateWithFormat: @"class == %@", [someObject class]]
Я получил ошибки, используя метод Джефа. Это сработало для меня, хотя.
NSPredicate *predicate = [NSPredicate predicateWithFormat:
@"self isKindOfClass: %@", class];
Источник: /questions/17681305/mozhno-li-otfiltrovat-nsarray-po-klassu/17681320#17681320
Для всех, кто заинтересован, вот Swift-версия метода Джефа:
NSPredicate(format: "className = %@", String(describing: MyCustomView.self))
Как насчет использования -className
как твой ключ?
NSPredicate* foo = [NSPredicate predicateWithFormat: @"className == %@", @"MyCustomView"];