Grunnleggende om Core Data
Forstå det grunnleggende i Core Data, Apples rammeverk for håndtering av objektgrafer og vedvarende lagring.
Grunnleggende om Core Data er en gratis leksjon i Objective-C iOS-utvikling for eldre kodebaser og virksomhetsapper på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Objective-C iOS-utvikling for eldre kodebaser og virksomhetsapper, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Objective-C iOS-utvikling for eldre kodebaser og virksomhetsapper inneholder totalt 4 leksjoner.
Velkommen til Core Data
Hei! I dag skal vi se nærmere på Core Data, Apples kraftige rammeverk for håndtering og vedvarende lagring av en applikasjons objektgraf.
Det hjelper deg med å lagre appens data på disken og hente dem effektivt.
Core Data er ikke en database
Det er viktig å forstå at Core Data i seg selv ikke er en database. Det er i stedet et rammeverk for håndtering av objektgrafer.
- Det hjelper deg med å håndtere dataobjekter i minnet.
- Det tilbyr verktøy for å lagre disse objektene i et vedvarende lager (som *kan* være en database, for eksempel SQLite).
- Tenk på det som et abstraksjonslag over den faktiske lagringen.
Core Data-stakken
Core Data er avhengig av en «stakk» med objekter som fungerer sammen. Det er viktig å forstå disse komponentene:
- Managed Object Model: Appens datastruktur.
- Persistent Store Coordinator: Kobler modellen til lageret.
- Persistent Store: Selve lagringen (for eksempel en SQLite-fil).
- Managed Object Context: Arbeidsområdet ditt for samhandling med data.
Managed Object Model (NSManagedObjectModel)
Managed Object Model (NSManagedObjectModel) definerer applikasjonens datastruktur.
- Her angir du entiteter (tilsvarende tabeller i en database).
- Hver entitet har attributter (egenskaper, for eksempel navn og alder).
- Du kan også definere relasjoner mellom entiteter.
Vanligvis oppretter du dette visuelt i Xcode ved hjelp av datamodellredigereren (en .xcdatamodeld-fil).
Persistent Store Coordinator (NSPersistentStoreCoordinator)
Persistent Store Coordinator (NSPersistentStoreCoordinator) fungerer som en bro.
- Den tar imot
NSManagedObjectModel. - Den kobler modellen til ett eller flere vedvarende lagre.
- Vanlige lagertyper omfatter SQLite, XML eller binærfiler. SQLite er den vanligste typen for iOS-apper.
Persistent Store (NSPersistentStore)
Persistent Store (NSPersistentStore) er stedet der dataene dine faktisk ligger på disken.
Når du velger et SQLite-lager, oppretter og administrerer Core Data en SQLite-databasefil. Du arbeider ikke direkte med SQL; Core Data håndterer dette for deg.
Managed Object Context (NSManagedObjectContext)
Managed Object Context (NSManagedObjectContext) er hovedgrensesnittet ditt for samhandling med Core Data.
- Tenk på det som et «arbeidsområde» der du oppretter, henter, oppdaterer og sletter objekter.
- Endringer som gjøres her, er midlertidige frem til du «lagrer» konteksten.
- Det sporer alle endringer og rapporterer dem til Persistent Store Coordinator når konteksten lagres.
Arbeide med NSManagedObject
Dataoppføringer i Core Data representeres av instanser av NSManagedObject (eller underklassene av den).
De ligner på vanlige Objective-C-objekter, men egenskapene deres administreres av Core Data.
Slik oppretter og angir du vanligvis egenskaper for et slikt objekt (forutsatt at en kontekst er klar):
#import <Foundation/Foundation.h>
// In a real Core Data app, 'Person' would be
// an NSManagedObject subclass generated from
// your data model.
@interface Person : NSObject
@property (nonatomic, strong) NSString *name;
@property (nonatomic, assign) NSInteger age;
@end
@implementation Person
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
// Normally, this object would be created
// via NSManagedObjectContext's insertNewObjectForEntityForName method.
// For this simple runnable example, we use a plain NSObject.
Person *newPerson = [[Person alloc] init];
newPerson.name = @"Alice";
newPerson.age = 30;
NSLog(@"Created person: %@, age: %ld", newPerson.name, (long)newPerson.age);
// In a real Core Data app, you'd then save the context
// to persist this NSManagedObject instance.
}
return 0;
}Lagre endringene dine
Etter at du har opprettet, endret eller slettet NSManagedObject-instanser i en NSManagedObjectContext, finnes disse endringene bare i minnet.
For å lagre dem permanent i Persistent Store må du be konteksten om å lagre:
NSError *error = nil;
[context save:&error];
if (error) {
NSLog(@"Error saving context: %@", error);
}Det er svært viktig å alltid kontrollere om det oppstod feil under lagringen!
Hurtigsjekk: Core Data-roller
Hvilken Core Data-komponent har ansvar for å definere applikasjonens datastruktur, inkludert entiteter og attributtene deres?
Oppsummering av grunnleggende Core Data
Vi har gått gjennom det grunnleggende i Core Data, Apples rammeverk for håndtering av objektgrafer. Husk:
- Det er ikke en database, men bruker databaser til lagring.
- Core Data-stakken omfatter modell, koordinator, lager og kontekst.
- Managed Object Model definerer dataene dine.
- Persistent Store Coordinator kobler modellen til lageret.
- Persistent Store er den fysiske plasseringen av dataene.
- Managed Object Context er kontaktpunktet ditt for samhandling med dataene.
- Du arbeider med NSManagedObject-instanser og må lagre konteksten for at endringer skal bli permanente.
Deretter skal vi utforske uthenting av data og mer avansert samhandling!
Lær deg Objective-C med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 12
- Leksjoner
- 48
Ofte stilte spørsmål
Er leksjonen «Grunnleggende om Core Data» gratis?
Ja – hele teksten i «Grunnleggende om Core Data» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Objective-C iOS-utvikling for eldre kodebaser og virksomhetsapper-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Objective-C iOS-utvikling for eldre kodebaser og virksomhetsapper inneholder totalt 4 leksjoner.
Hva lærer jeg i «Grunnleggende om Core Data»?
Forstå det grunnleggende i Core Data, Apples rammeverk for håndtering av objektgrafer og vedvarende lagring. Du øver på Objective-C iOS-utvikling for eldre kodebaser og virksomhetsapper med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Objective-C iOS-utvikling for eldre kodebaser og virksomhetsapper?
Ingen tidligere erfaring er nødvendig. Objective-C iOS-utvikling for eldre kodebaser og virksomhetsapper på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.
Hvor lang tid tar leksjonen «Grunnleggende om Core Data»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Objective-C iOS-utvikling for eldre kodebaser og virksomhetsapper-leksjonen?
Ja. Alle Objective-C iOS-utvikling for eldre kodebaser og virksomhetsapper-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Property-lister og arkivering
- Grunnleggende om Core Data
- SQLite-integrasjon med FMDB
- Lagre innstillinger med NSUserDefaults