Till skillnad från detta kommer jag att notera att det är en vanlig missuppfattning men Core Data är inte ett databassystem.
Istället är det ett runtime-objektgrafhanteringssystem med beständigt anslag som alternativ om du vill ha det. Dess primära funktion är att tillhandahålla modellskiktet i Model-View-Controller-designmönstret. Som sådan handlar det om mycket mer än att bara få data på och från en disk.
Core Data har en inlärningskurva men enligt min erfarenhet är det största hindret många möter att försöka behandla Core Data som någon form av objektorienterad omslag runt SQL. Ur det perspektivet är Core Data väldigt förvirrande eftersom det verkar kräva att man lär sig så mycket som inte har något med uthållighet att göra.
Att använda databaser som SQLite, MongoDB och CouchDB för uthållighet kommer inte att påskynda saker alls eftersom, även om du kanske bättre förstår hur de får data på och utanför disken, hjälper de inte alls att hantera data och relationer till de andra dataobjekten och objekten i användargränssnittet. Du måste fortfarande ha en datamodell och du måste koda upp allt för hand. Om inte din datamodell är extremt enkel, kommer det att ta mer tid än att lära sig kärndata.
Det bästa sättet att lära sig kärndata är att ignorera det faktum att objektgrafen överhuvudtaget kan bevaras. Börja bara från perspektivet att du har många objekt som representerar datamodellen för din app och du måste hantera deras attribut och relationer.