Using Core Data. Let’s say we have models for Team and Player.
Assume:
-Each player is a member of a single team
-Relevant relationships have been made in a xcdatamodel file.
I have a TeamListViewController (listing all teams), when I select a team I want to see a list of just those players related to that selected team on the PlayerListViewController.
I then want to be able to select an individual player and see PlayerViewController and review their personal information, edit details etc.
I know how to use the fetchResultsController to pull in a list of all players.
-
How do I best go about pulling in the data needed to show just the players for the selected team?
-
Also, If I just pull the data into an Array so I can display it, how do I also ensure that the array remains in sync with core data when other changes are made to a record?
What you need to fetch objects matching certain criteria is a NSPredicate.
Now the fetch request returns results where the team attribute = “Tigers”. Without the predicate it would return all objects.
Predicates can get complex – you can have multiple conditions and special operators are defined like “ANY” or “LIKE”. See the Predicate Programming Guide
On your second question – do you anticipate accessing the Core Data store with multiple threads? Start reading… you need a managed object context for each thread. If not you basically don’t need to worry. Changes to the underlying store are “faulted in” just as if you follow a relationship to an object you have not explicitly fetched.