Grunderna i Core Data
Förstå grunderna i Core Data, Apples ramverk för hantering av objektgrafer och beständig lagring.
Grunderna i Core Data är en gratis lektion i Objective-C för iOS-utveckling av äldre appar och företagsappar på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Objective-C för iOS-utveckling av äldre appar och företagsappar, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Objective-C för iOS-utveckling av äldre appar och företagsappar innehåller totalt 4 lektioner.
Välkommen till Core Data
Hej! I dag ska vi fördjupa oss i Core Data, Apples kraftfulla ramverk för hantering och beständig lagring av en apps objektgraf.
Det hjälper dig att lagra appens data på disken och hämta den effektivt.
Core Data är inte en databas
Det är viktigt att förstå att Core Data i sig inte är en databas. Det är i stället ett ramverk för hantering av objektgrafer.
- Det hjälper dig att hantera dataobjekt i minnet.
- Det tillhandahåller verktyg för att spara objekten i ett beständigt lager (som *kan* vara en databas, till exempel SQLite).
- Se det som ett abstraktionslager ovanpå den faktiska lagringen.
Core Data-stacken
Core Data bygger på en ”stack” av objekt som samarbetar. Det är viktigt att förstå dessa komponenter:
- Managed Object Model: Appens dataschema.
- Persistent Store Coordinator: Ansluter modellen till lagret.
- Persistent Store: Den faktiska lagringen (till exempel en SQLite-fil).
- Managed Object Context: Din arbetsyta för interaktion med data.
Managed Object Model (NSManagedObjectModel)
Managed Object Model (NSManagedObjectModel) definierar programmets datastruktur.
- Här anger du entiteter (ungefär som tabeller i en databas).
- Varje entitet har attribut (egenskaper, till exempel namn och ålder).
- Du kan även definiera relationer mellan entiteter.
Vanligtvis skapar du detta visuellt i Xcode med hjälp av dataredigeraren (en .xcdatamodeld-fil).
Persistent Store Coordinator (NSPersistentStoreCoordinator)
Persistent Store Coordinator (NSPersistentStoreCoordinator) fungerar som en brygga.
- Den tar emot din
NSManagedObjectModel. - Den ansluter modellen till ett eller flera beständiga lager.
- Vanliga lagertyper är SQLite, XML eller binärfiler. SQLite är vanligast i iOS-appar.
Persistent Store (NSPersistentStore)
Persistent Store (NSPersistentStore) är platsen där dina data faktiskt lagras på disken.
När du väljer ett SQLite-lager skapar och hanterar Core Data en SQLite-databasfil. Du arbetar inte direkt med SQL; Core Data hanterar det åt dig.
Managed Object Context (NSManagedObjectContext)
Managed Object Context (NSManagedObjectContext) är ditt primära gränssnitt för interaktion med Core Data.
- Se det som en ”arbetsyta” där du skapar, hämtar, uppdaterar och tar bort objekt.
- Ändringar som görs här är tillfälliga tills kontexten ”sparas”.
- Den spårar alla ändringar och rapporterar dem till Persistent Store Coordinator när den sparas.
Arbeta med NSManagedObject
Dataregister i Core Data representeras av instanser av NSManagedObject (eller dess underklasser).
De liknar vanliga Objective-C-objekt, men deras egenskaper hanteras av Core Data.
Så här skapar och anger du vanligtvis egenskaper för ett sådant objekt (förutsatt att en kontext är 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;
}Spara dina ändringar
När du skapar, ändrar eller tar bort instanser av NSManagedObject i en NSManagedObjectContext finns ändringarna bara i minnet.
För att spara dem permanent i Persistent Store måste du instruera kontexten att spara:
NSError *error = nil;
[context save:&error];
if (error) {
NSLog(@"Error saving context: %@", error);
}Det är mycket viktigt att alltid kontrollera om fel uppstod när du sparar!
Snabbtest: Core Data-komponenternas roller
Vilken Core Data-komponent ansvarar för att definiera programmets datastruktur, inklusive entiteter och deras attribut?
Sammanfattning av Core Data-grunderna
Vi har gått igenom grunderna i Apples ramverk för hantering av objektgrafer, Core Data. Kom ihåg:
- Det är inte en databas, men använder databaser för lagring.
- Core Data-stacken innehåller modell, koordinator, lager och kontext.
- Managed Object Model definierar dina data.
- Persistent Store Coordinator ansluter modellen till lagret.
- Persistent Store är den fysiska platsen för data.
- Managed Object Context är din kontaktpunkt för interaktion.
- Du interagerar med instanser av NSManagedObject och måste spara kontexten för att ändringarna ska bestå.
Därefter utforskar vi hur data hämtas och hur mer komplexa interaktioner fungerar!
Lär dig Objective-C med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 12
- Lektioner
- 48
Vanliga frågor
Är lektionen ”Grunderna i Core Data” gratis?
Ja – hela texten till ”Grunderna i Core Data” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Objective-C för iOS-utveckling av äldre appar och företagsappar, kan Ni uppgradera till CoddyKit PRO. Kursen i Objective-C för iOS-utveckling av äldre appar och företagsappar innehåller totalt 4 lektioner.
Vad lär jag mig i ”Grunderna i Core Data”?
Förstå grunderna i Core Data, Apples ramverk för hantering av objektgrafer och beständig lagring. Ni övar på Objective-C för iOS-utveckling av äldre appar och företagsappar med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Objective-C för iOS-utveckling av äldre appar och företagsappar?
Du behöver inga förkunskaper. Utbildningen i Objective-C för iOS-utveckling av äldre appar och företagsappar på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.
Hur lång tid tar lektionen ”Grunderna i Core Data”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Objective-C för iOS-utveckling av äldre appar och företagsappar-lektionen?
Ja. Varje Objective-C för iOS-utveckling av äldre appar och företagsappar-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Egenskapslistor och arkivering
- Grunderna i Core Data
- SQLite-integrering med FMDB
- Lagra inställningar med NSUserDefaults