I think this really boils down to not understanding why matchups is returning an "undeclared identifier" error in my ButtonViewController when it's declared and synthesized in XMLParser .h and .m, which is then imported into ButtonViewController.
There is one appearance of matchups in the posted code for ButtonViewController:
Code:
filteredArray = [self.matchups filteredArrayUsingPredicate:pred];
The reason it's an undeclared identifier is that self in that statement refers to a ButtonViewController, not an XMLParser. The method it's in belongs to ButtonViewController. A ButtonViewController object contains an XMLParser object, but that doesn't mean it is one.
Analogy -- a Car has wheels. A Car contains Persons. A Person has legs. If you refer to someCar.wheels, you get the number of wheels the car itself has. If you refer to someCar.legs, it's nonsense because a Car has no legs, even though any Persons in the car do have legs.
I think you should go back and review fundamental concepts.