I am having issues creating, and understanding how to create a core data model for this situation.
(1) A person can have multiple pets (either combination of a Dog or Cat).
(2) There can be multiple people too.
I want to go through the Person entity and pull each person, and each pet and there information.
I’m not sure if I should use a relationship, or how can I set this model up in Core Data. I quickly jotted down a picker of what I thought the model would look. I made this model for simplicity sake, my model doesn’t deal with Cats and Dogs.
Any suggestions or ideas is greatly appreciated.

I quickly put together a model for you:
So, basically “Person” is your person, which has a relationship “pets” – this is a “to many” relationship. One person can have multiple pets.
Then there is a “Pet” entity. It’s an abstract entity that represents any pet, cats and dogs alike. It has an inverse relationship to “pets” of “Person”. Therefore, from any pet, you can always trace back to the corresponding owner. Also, every subclass of “Pet” will have some common attributes, like age/name/weight.
Additionally, subclasses (entities which have “Pet” as “Parent Entity”, like “Dog” and “Cat”) can have their own attributes in addition to the attributes of “Pet”, like a “Dog” has a “barkSound”, and a “Cat” has a “meowSound”.
You can of course add as many persons into your storage as you want, this has nothing to do with the data model.
To retrieve the information, simply use a fetch request to fetch all persons. Then loop through them and access their “pets” property to get NSSets for their pets. You can loop through those sets to access the information of the pets.
Here is an example of how to fetch all persons, then all pets:
Note that you can also just fetch the pets, without going through their owners:
The code above is not tested, and might include typos, but will give you the idea on how to do it.