Realm für Swift: Vollständiger Leitfaden mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Was ist Realm und wozu wird es benötigt?

\n\n

Realm ist eine mobile Datenbank, die als Alternative zu Core Data und SQLite entwickelt wurde. Im Gegensatz zu traditionellen relationalen Datenbanken fungiert Realm als objektorientierter Speicher: Sie arbeiten mit nativen Swift-Objekten, nicht mit SQL-Abfragen oder NSManagedObject. Realm speichert Daten in einem eigenen Format, was eine Arbeitsgeschwindigkeit nahe der Arbeitsspeichergeschwindigkeit ermöglicht.

\n\n

Die wichtigsten Vorteile von Realm:

\n
    \n
  • Geschwindigkeit: Realm ist auf mobilen Geräten 10-100 Mal schneller als SQLite.
  • \n
  • Einfachheit: Sie arbeiten mit gewöhnlichen Swift-Objekten, die Sie von Realm.Object ableiten.
  • \n
  • Automatische Aktualisierung: Abfrageergebnisse (Results) werden bei Datenänderungen automatisch aktualisiert.
  • \n
  • Live-Objekte: Realm-Objekte werden automatisch mit der Datenbank synchronisiert.
  • \n
  • Plattformübergreifend: Realm funktioniert auf iOS, macOS, tvOS und watchOS.
  • \n
\n\n

Realm ist ideal für Anwendungen, die schnellen Zugriff auf Daten auf dem Gerät erfordern: To-do-Listen, Messenger, Netzwerk-Caching, Notizen-Apps und viele andere.

\n\n

Installation von Realm in Swift

\n\n

Realm für Swift wird über den Swift Package Manager (SPM), CocoaPods oder Carthage installiert. Wir betrachten die beiden gängigsten Methoden.

\n\n

Installation über den Swift Package Manager (empfohlen)

\n
    \n
  1. Öffnen Sie in Xcode Ihr Projekt: File → Add Packages...
  2. \n
  3. Fügen Sie die URL ein: https://github.com/realm/realm-swift.git
  4. \n
  5. Wählen Sie die Version (empfohlen wird die neueste stabile Version) und klicken Sie auf Add Package.
  6. \n
  7. Wählen Sie im erscheinenden Fenster das Paket Realm und RealmSwift für Ihr Ziel-Build aus.
  8. \n
\n\n

Installation über CocoaPods

\n

Fügen Sie in die Podfile ein:

\n
target 'YourApp' do\n  use_frameworks!\n  pod 'RealmSwift'\nend
\n

Führen Sie dann im Terminal aus:

\n
pod install
\n\n

Import im Code

\n
import RealmSwift
\n\n

Schnellstart: Erstes Modell und Datenschreiben

\n\n

Erstellen wir ein einfaches Aufgabenmodell und speichern es in der Datenbank.

\n\n
import RealmSwift\n\n// 1. Modell definieren\nclass Task: Object {\n    @Persisted var id: String = UUID().uuidString\n    @Persisted var title: String = ""\n    @Persisted var isCompleted: Bool = false\n    @Persisted var createdAt: Date = Date()\n    \n    // Primärschlüssel (optional, aber empfohlen)\n    override static func primaryKey() -> String? {\n        return "id"\n    }\n}\n\n// 2. Objekt speichern\nlet task = Task()\ntask.title = "Lebensmittel kaufen"\ntask.isCompleted = false\n\nlet realm = try! Realm()\ntry! realm.write {\n    realm.add(task)\n}\n\n// 3. Alle Aufgaben lesen\nlet tasks = realm.objects(Task.self)\nfor task in tasks {\n    print("\\(task.title) - \\(task.isCompleted ? "Erledigt" : "Nicht erledigt")")\n}
\n\n

Grundlegende Methoden und Funktionen von Realm

\n\n

Nachfolgend sind die wichtigsten Methoden für die Arbeit mit Realm aufgeführt. Jede Methode wird mit einer Beschreibung, Parametern und einem funktionierenden Beispiel erläutert.

\n\n

1. Realm() — Datenbank initialisieren

\n

Was es tut: Erstellt oder öffnet eine bestehende Realm-Datenbank. Standardmäßig befindet sich die Datenbankdatei im Documents-Verzeichnis der App.

\n

Parameter: configuration: Realm.Configuration? — optionale Konfiguration (Datei-URL, Schema, Migrationsversion).

\n
// Standardinitialisierung\nlet realm = try! Realm()\n\n// Initialisierung mit benutzerdefinierter URL\nlet config = Realm.Configuration(fileURL: FileManager.default\n    .urls(for: .documentDirectory, in: .userDomainMask)\n    .first?.appendingPathComponent("myrealm.realm"))\nlet customRealm = try! Realm(configuration: config)
\n\n

2. realm.wr

Empfehlungen