Combinando matrices NSA a través de la intersección y la unión

Tengo dos NSArrays A y B que comparten algunos elementos comunes, por ejemplo,

A: 1,2,3,4,5 
B: 4,5,6,7

Me gustaría crear un nuevo NSArray que consista en los contenidos comunes entre los dos NSArrays unidos con el contenido del segundo NSArray manteniendo el orden de los elementos y eliminando duplicados. Es decir, me gustaría (A ∩ B) ∪ B.

La operación en los NSArrays anteriores produciría:

A ∩ B: 4,5
(A ∩ B) ∪ B: 4,5,6,7

¿Cómo logro esto en Objective-C?

Respuestas a la pregunta(5)

Su respuesta a la pregunta