A list should be used for simple and limited data needs that are somewhat static. For example, they are good at PickerViews. SQLite and CoreData provide reliable data access and manipulation, as well as data changes - data integrity. Data models can be normalized, and dynamic relationships are maintained between objects. In addition, complex queries can be performed with relational joins.
I published applications in which I used SQLite, and while more because of the IOS SDK (pre-Core Data), the standard SQL syntax attempted less taxation.
My latest apps, SureSafe Home Inventory makes full use of CoreData. CoreData generates and uses the SQLite database. Core Data is the layer above the SQLite code that I had to write in my previous application. While the initial learning curve may be a little stiff, it's worth the change! I probably spent 2 months reading everything and playing with a sample of Apple code to become somewhat experienced. But he cares so much about the headache of good database coding. There is even a version of the database model versions, so if you have an update later, you can add new db fields and transfer the existing client data.
Long Winded ... but if you are starting a new one, head over to CoreData. I have no connection with Apple.
Steve S.
source share