Я хочу извлечь из массива SKSpriteNode только те элементы, которые пересекаются с предопределенным фреймом. Я могу это сделать, а при итерации:Фильтр nsmutable array от CGRectIntersectsRect
for (SKSpriteNode* Object in Array) {
if (CGRectIntersectsRect(Frame,Object.frame)) {
//extraction code
}
}
Однако Performace этого метода, кажется, быть бедным, есть способ сделать эту операцию в более быстрый способ? Я пытался что-то вроде этого:
NSPredicate *Predicate = [NSPredicate predicateWithFormat:@"CGRectIntersectsRect(Frame,SELF.frame)"];
NSArray *Results = [Array filteredArrayUsingPredicate:Predicate];
Но это создает ошибку «Не удалось разобрать имя функции„CGRectIntersectsRect“в поддерживаемом селектор (CGRectIntersectsRect)». Что не так? Использование предиката вместо a for даст мне некоторый выигрыш в производительности?