Objective-C iOS-utvikling for eldre kodebaser og virksomhetsapper · leksjon

Grunnleggende om Core Data

Forstå det grunnleggende i Core Data, Apples rammeverk for håndtering av objektgrafer og vedvarende lagring.

Leksjon 2 av 411 trinn

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!

Gratis å komme i gang

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

  1. Property-lister og arkivering
  2. Grunnleggende om Core Data
  3. SQLite-integrasjon med FMDB
  4. Lagre innstillinger med NSUserDefaults
← Tilbake til Objective-C iOS-utvikling for eldre kodebaser og virksomhetsapper