Cómo unir dos cadenas para NSPredicate, es decir, nombre y apellido

tengo unPerson Objeto que tiene dosNSString propiedades;firstName and lastName. Actualmente estoy usando unNSPredicate al igual que:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(firstName contains[cd] %@) OR (lastName contains[cd] %@)", searchText, searchText];

Entonces, por ejemplo, digamos que estoy buscando el nombre"John Smith". En mi barra de búsqueda si escribo"Joh", entoncesJohn Smith Aparecerá como una opción. Esto es bueno y bueno, pero si escribo"John Sm" se quedará en blanco.

¿Cómo puedo unir el primer nombre y el apellido en elpredicate así que si estaba buscando"John Sm" entoncesJohn Smith Todavía aparecería como una opción.

Espero que esto tenga sentido. Gracias.

EDITAR: Para agregar un poco más de aclaración, estoy usando elSearchDisplayController método de delegado:

-(void)filterContentForSearchText:(NSString *)searchText scope:(NSString *)scope;

y estoy usando elpredicate al igual que:

newArray = [personObjectArray filteredArrayUsingPredicate:predicate];

Respuestas a la pregunta(3)

Su respuesta a la pregunta