Compruebe si la cadena contiene alguna cadena de la matriz

Sé que puedo verificar si una cadena contiene otra cadena como esta

NSString *string = @"hello bla bla";
if ([string rangeOfString:@"bla"].location == NSNotFound) {
  NSLog(@"string does not contain bla");
} else {
  NSLog(@"string contains bla!");
}

Pero, ¿y si tengo unNSArray *arary = @[@"one",@"two", @"three", @"four"] y quería verificar si una cadena contiene cualquiera de estos sin solo bucle o tiene un montón de o (|| ) Entonces sería algo como esto

if (array contains one or two or three or four) {
//do something
}

Pero si tengo una matriz más larga, esto se vuelve tedioso, así que ¿hay otra forma, sin simplemente pasar?

EDITAR

Quiero verificar si myArray tiene alguno de estos valores en valuesArray

valuesArray =@[@"one",@"two", @"three", @"four"];
myArray = [@"I have one head", @"I have two feet", @"I have five fingers"]

SALIDA

outputArray = @[@"I have one head", @"I have two feet"]

Respuestas a la pregunta(3)

Su respuesta a la pregunta