core-data Zelfstudie
Aan de slag met kerngegevens
Zoeken…
Opmerkingen
Core Data is een raamwerk in de verschillende OS SDK van Apple inclusief, maar niet beperkt tot iOS en OS X. Het heeft twee hoofdrollen: een modellaag en een persistentielaag. De modellaag wordt gebruikt bij het beheer van modelobjecten en persistente gegevens. U kunt eenvoudig gegevens opslaan en beheren in een objectgeoriënteerde interface. Primaire functies omvatten filteren, opvragen, sorteren, persistente gegevens en het creëren van relaties tussen gegevens. Andere onderwerpen die van belang zijn voor Core Data-projecten zijn NSPredicate, threading en onder andere.
Een voorbeeldtoepassing van Core Data zou een catalogus-app voor uw lokale bibliotheek kunnen zijn. In de Catalogus-app kan een bibliothecaris boeken toevoegen of verwijderen. Ze kunnen ook boeken filteren op genre, boeken sorteren op publicatiedatum of zoeken naar een specifiek auteurswerk. Een entiteit "Boek" zou verschillende attributen hebben, zoals titel, auteur, publicatiedatum, isbn, oproepnummer, enz. Kerngegevens inclusief het bovenstaande voorbeeld kunnen ook gegevens opslaan die zijn verzameld van een server.
Belangrijke componenten van het raamwerk zijn onder meer:
- Gegevensmodellen (entiteiten, attributen en relaties)
- Core Data Stack (NSPersistentStoreCoordinator, NSManagedObjectModel, NSManagedObjectContext)
- NSFetchRequest
- NSFetchedResultsController
bronnen:
CoreData & Concurrency
Het is belangrijk om te onthouden dat CoreData NIET thread-safe is, wat betekent dat als het nodig is om bijvoorbeeld een achtergrond-thread te gebruiken om aan ManagedObjects te werken, er nieuwe dingen zijn om te overwegen, zoals PrivateQueue- / MainQueue -ManagedObjectContexts.
Uit de Apple-documentaire: Core Data verwacht op een enkele thread te worden uitgevoerd. U mag nooit beheerde objectcontexten tussen threads delen. Dit is een harde regel die je niet moet overtreden.
Uw eerste model maken
- Selecteer het
.xcdatamodeld
bestand. Je zult merken dat je geen entiteiten hebt. Je moet er zelf een maken. Onderaan Xcode ziet u een knop met de tekst "Entiteit toevoegen" erop klikken en u hebt een nieuwe entiteit waarmee u aan het project kunt werken.
- In deze stap zijn een paar punten te vermelden. Ten eerste is dat u de naam van uw entiteit hier hebt gewijzigd. De entiteit krijgt de naam
Person
. Onder het gedeelte attributen voegt u de attributen toe aan uw model. Deze knop is een pluspunt onderaan de sectie. U kunt alle attributen toevoegen die relevant zijn voor uw app. Als u bijvoorbeeld een app voor een contactboek maakt, hoeft u het model van een persoon geen attribuutArms
van het typeBoolean
. U moet het gerelateerd houden aan uw app. Bijvoorbeeld het toevoegen van eentelephone
met het type Integer of als u String wilt. Je hebt verschillende soorten opties om uit te kiezen, variërend vanBooleans
totDates
en meer.
- Nadat u tevreden bent met uw model, kunt u de subklasse NSManagedObject maken.
Hier kunnen we twee belangrijke dingen zien. Ten eerste is die persoon (hetzelfde als de naam van uw entiteit) een subklasse van NSManagedObject. Dit is belangrijk voor uw Core Data Stack. Ten tweede moet u twee bestanden maken, een klasse
Person.swift
en een extensie vanPerson
genaamdPerson+CoreDataProperites.swift
.Alle toevoegingen moeten worden gedaan in
Person.swift
, want als u ooit uw model wijzigt en de klassengenerator opnieuw uitvoert, wordt alles inPerson+CoreDataProperties.swift
.
Het project maken
De eerste actie die moet worden ondernomen, is een nieuw project maken Bestand> Nieuw> Project. Hier is Single View Application geselecteerd, maar u kunt degene kiezen die het beste bij uw project past.
De volgende stap bij het instellen van kerngegevens is het toevoegen van de informatie aan uw project. Het belangrijkste deel in de onderstaande foto is om "Gebruik kerngegevens" te selecteren