Saturday, 22 April 2017

Core Daten Sqlite Vs Binary Optionen

Ich bin bereits ziemlich vertraut mit relationalen Datenbanken und haben SQLite (und andere Datenbanken) in der Vergangenheit verwendet. Allerdings hat Core Data einen gewissen Reiz, so dass ich erwägen, verbringen einige Zeit, um es für den Einsatz in meiner nächsten Anwendung zu lernen. Gibt es viel Nutzen für die Verwendung von Core Data über SQLite, oder umgekehrt Was sind die Vor-Nachteile von jedem finde ich es schwer, die Kosten für das Lernen von Core-Daten zu rechtfertigen, wenn Apple nicht verwendet es für viele seiner Flaggschiff-Anwendungen wie Mail. app oder iPhoto. app - stattdessen für SQLite-Datenbanken. SQLite wird auch umfangreich auf dem iPhone verwendet. Können die vertraut mit der Verwendung sowohl Kommentar auf ihre Erfahrung Vielleicht, wie bei den meisten Dingen, ist die Frage tiefer als nur mit einem über den anderen gefragt Feb 7 09 at 9:05 geschlossen als nicht konstruktiv von casperOne Feb 23 12 at 23:25 As Es steht derzeit, ist diese Frage nicht eine gute Passform für unsere QampA-Format. Wir erwarten, dass Antworten durch Tatsachen, Referenzen oder Fachwissen unterstützt werden, aber diese Frage wird wahrscheinlich Debatte, Argumente, Polling oder erweiterte Diskussion erbitten. Wenn Sie feststellen, dass diese Frage verbessert und möglicherweise wieder geöffnet werden kann, besuchen Sie die Hilfe zur Anleitung. Wenn diese Frage umformuliert werden kann, um die Regeln in der Hilfe zu passen. Bearbeiten Sie bitte die Frage. Könnten Sie bitte einen Link zu en. wikipedia. org Wiki CoreData für alle, die nicht wissen, was das ist. Ndash RSabet 7 Februar at 9:26 Beachten Sie, dass Core-Daten ist und sollte nicht als eine Datenbank ndash verwendet werden user142019 Aug 6 11 at 12:10 Obwohl Core Data ist ein Nachkomme von Apples Enterprise Object Framework. Ein objekt-relationaler Mapper (ORM), der eng an ein relationales Backend gebunden war, ist Core Data kein ORM. Es ist in der Tat ein Objekt-Grafik-Management-Framework. Es verwaltet einen potenziell sehr großen Graphen von Objektinstanzen, so dass eine App mit einem Graphen arbeiten kann, der nicht vollständig in den Speicher passt, indem Objekte in den und aus dem Speicher nach Bedarf ausfallen. Core-Daten verwaltet auch Einschränkungen für Eigenschaften und Beziehungen und maintins Referenzintegrität (z. B. Vorwärts - und Rückwärtsverbindungen konsistent halten, wenn Objekte aus einer Beziehung entfernt werden). Core Data ist damit ein idealer Rahmen für den Aufbau der Modellkomponente einer MVC-Architektur. Zur Implementierung des Graphenmanagements verwendet Core Data sqlite als Plattenspeicher. Es könnte mit einer anderen relationalen Datenbank oder sogar einer nicht-relationalen Datenbank wie CouchDB implementiert worden sein. Wie andere schon dargelegt haben, kann Core Data auch XML oder ein Binärformat oder ein benutzerdefiniertes atomares Format als Backend verwenden (obwohl diese Optionen es erfordern, dass der gesamte Objektgraphen in den Speicher passt). Wenn Sie daran interessiert sind, wie Core Data auf einem SQL-Backend implementiert ist, sollten Sie OmniGroups OmniDataObjects Framework, eine Open-Source-Implementierung einer Teilmenge der Core Data API, auschecken. Das BaseTen-Framework ist auch eine Implementierung der Core Data API mit PostgreSQL als Backend. Da Core Data kein ORM für sqlite sein soll, kann es kein beliebiges sqlite Schema lesen. Umgekehrt sollten Sie nicht auf die Möglichkeit, Core Datas sqlite Datenspeicher mit anderen sqlite-Tools das Schema zu lesen, ist ein Implementierungsdetails, das sich ändern kann. So gibt es nicht wirklich einen Konflikt zwischen der Verwendung von Core Data oder sqlite direkt. Wenn Sie eine relationale Datenbank wünschen, verwenden Sie sqlite (direkt oder über einen der Objective-C-Wrapper wie FMDB) oder einen relationalen Datenbankserver. Sie können jedoch weiterhin Core Data für die Verwendung als Object-Graph-Management-Framework erlernen. In Kombination mit Apples-Controller-Klassen und Key-Value-Binding-kompatiblen View-Widgets können Sie eine komplette MVC-Architektur mit sehr wenig Code implementieren. Beantwortet Feb 7 09 at 18:27 Anmerkung fmdb ist kein ORM, nur ein objc Wrapper um sqlite3 C api ndash robottobor Feb 7 09 at 20:57 Vielen Dank für den Fang I39ll Update der Post. Ndash Barry Wark 7. Februar um 21:27 Mit iOS 5.0 erhalten Sie den zusätzlichen Vorteil, dass Sie iCloud File-Sync kostenlos nutzen können, wenn Sie mit Core Data. Wenn you39re mit SQLite direkt it39ll haben eine Menge von manuellen basteln und Umsetzung, um es zu synchronisieren über iCloud. Ndash seltsam Github pmurphyjam DBExample It39s ein Xcode-Projekt, das SQLite verwendet. Ndash Pat May 22 14 at 21:28 Und mit iOS 5.0 bekommst du den zusätzlichen Vorteil, iCloud File-Sync kostenlos nutzen zu können, wenn du mit Core Data arbeitest. Wenn Sie mit SQLite direkt itll haben eine Menge von manuellen Basteln und Implementierung, um es zu synchronisieren über iCloud. iOS Datenbanken: SQLLite vs Core Data vs Realm Wenn Sie eine große App, die schnell läuft und funktioniert () Keine Bugs erlaubt) youll müssen über alle Entwicklungsaspekte Ihrer app sorgfältig denken. Einer der Aspekte müssen Sie herausfinden, wie die Speicherung und Suche nach großen Mengen an Daten, so youll wahrscheinlich eine Datenbank verwenden. Die häufigsten Optionen für iOS-Datenbanken sind SQLite und Core Data und ein relativ neuerer Spieler namens Realm. Dieser Artikel behandelt die Vor-und Nachteile der einzelnen Optionen und diskutiert den Prozess der Umstellung auf Realm, wenn Sie bereits mit SQLite oder Core Data. SQLite ist die am meisten genutzte Datenbank-Engine in der Welt und ihre Open-Source sowie. Es implementiert eine Transaktion SQL-Datenbank-Engine ohne Konfiguration und kein Server erforderlich. SQLite ist auf Mac OS-X, iOS, Android, Linux und Windows zugänglich. Es liefert eine einfache und benutzerfreundliche Programmierschnittstelle, wie sie in ANSI-C geschrieben wird. SQLite ist auch sehr klein und leicht und die gesamte Datenbank kann in einer plattformübergreifenden Plattendatei gespeichert werden. Die Gründe für die große Popularität von SQLite sind: Unabhängigkeit von einem Server Zero-Konfiguration Sicherer Zugriff von mehreren Prozessen und Threads Speichert Daten in Tabellen mit einer oder mehreren Spalten, die einen bestimmten Datentyp enthalten. Core Data ist die zweite Haupt-iOS-Speichertechnologie, die App-Entwicklern zur Verfügung steht. Abhängig von der Art der Daten und die Menge an Daten, die Sie verwalten und speichern müssen, haben sowohl SQLite und Core Data ihre Vor-und Nachteile. Core Data konzentriert sich mehr auf Objekte als die herkömmlichen Tabellen-Datenbankmethoden. Mit Core Data speichern Sie tatsächlich Inhalte eines Objekts, das durch eine Klasse in Objective-C dargestellt wird. Obwohl sie grundsätzlich unterschiedlich sind, Core-Daten: Verwendet mehr Speicher als SQLite Verwendet mehr Speicherplatz als SQLite Schneller beim Abrufen von Datensätzen als SQLite. Theres ein neuer (ish) Spieler in der Stadt genannt Realm. Realm wurde schneller und effizienter gestaltet als die bisherigen Datenbanklösungen. Diese neue Lösung ist eine plattformübergreifende mobile Datenbank namens Realm. Es ist in Objective-C und Swift, und seine für iOS und Android entwickelt. Die Hauptseiten von Realm sind: Sein absolutes freies, Schnelles und bedienungsfreundlich. Unbegrenzte Nutzung. Arbeit auf eigene Persistenz-Engine für Geschwindigkeit und Leistung. Was ist wirklich toll daran, dass Sie alle Arbeiten mit ein paar Zeilen Code zu behandeln. Realm ist sehr einfach zu installieren und schneller im Vergleich zu SQLite und Core Data zu arbeiten. Außerdem sind die Datenbankdateien unter iOS und Android gemeinsam nutzbar. Wenn Sie eine App mit einer Menge von Datensätzen und für eine große Anzahl von Benutzern entwerfen, müssen Sie besonderes Augenmerk auf die Skalierbarkeit von Anfang an. Realm ist groß, und es ermöglicht Ihnen, eine Menge Daten schnell zu behandeln. Um mit Realm zu beginnen, benötigen Sie mindestens iOS 8 oder OS X 10.9. Ältere Versionen unterstützen diese neue, einfache Lösung für die Verwaltung von lokalen Speicher - und Datenbanken nicht. Umschalten auf Realm Wenn Sie mit Core Data gearbeitet haben und an Realm weitergeleitet werden möchten, ist der Vorgang einfach. Viele Entwickler haben die Reise in ein paar Stunden gemacht. Beachten Sie, dass sowohl Core-Daten und Realm Daten als Objekte behandeln, was Sie tun müssen, um Refactoring der Core Data-Code, um Realm verwenden. Entfernen Sie das Core Data Framework. Suchen Sie den Teil Ihres Codes, der den Core Data Code enthält, und benennen Sie ihn um. Sie skizzieren einen schönen Trick, um einen Compilerfehler für jede Codezeile mit Core Data zu entfernen, entfernen Sie den Core Data Setup Code. Es wird ein Teil der Core Data Setup-Code irgendwo in Ihrer Anwendung und Sie müssen loswerden alles. Realm wird automatisch konfiguriert, sobald Sie zum ersten Mal auf ein Realm-Objekt zugreifen. Sie können wählen, wo die Realm-Datendatei gespeichert werden soll, und sie ist zur Laufzeit noch optional. Migrieren Sie Ihre Modelldateien. Sie können leicht verwaltete Objektunterklassen in Realm konvertieren. Realm verwaltet Eigenschaftsschlüsselwörter intern (Sie müssen sie nicht angeben), was die Klasse Header sieht minimal. Außerdem können Sie sicher entfernen alle NSNumber cruft, weil Realm unterstützt einfache numerische Daten (NSInteger und CGFloat). Es gibt auch Einschränkungen für Realm. Im Gegensatz zu Core-Daten, deren Objekte NSManagedObjectID haben, um Objekte eindeutig zu identifizieren, überlässt Realm Ihnen diese als Entwickler. Zweitens kann die aktuelle Version von Realm nicht mit Objekteigenschaften mit einem Nullwert umgehen. Dies ist eine kleine Unannehmlichkeiten, aber die Entwickler sind vielversprechend, dass die nächste Version von Realm nicht dieses Problem haben. Migrieren Sie Ihre Schreiboperationen. Realm8217s speichern Operationen sind ein wenig anders als in Core-Daten und Sie müssen sich mit diesem vertraut machen. Sobald die Realm-Objekte zu einem Realm-Objekt hinzugefügt werden, können sie nicht geändert werden. Dies gewährleistet die Konsistenz der Daten in verschiedenen Threads. Um die Eigenschaften ändern zu können, muss das Objekt, in dem diese gespeichert wurden, in einer Schreibtransaktion sein. Migrieren Sie Ihre Abfragen, um Ihre Daten nach Bedarf abzurufen. Um eine Datei abzurufen, benötigen Sie in Core Data etwa 10 Zeilen Code. In Realm können Sie dasselbe mit nur einer Zeile machen. Migrieren Sie Ihre Benutzer Produktionsdaten für aktive Apps, die in Core Data erstellt wurden, können Sie das Core Data Framework in die App zurückverknüpfen, Benutzerdaten abrufen und an Realm weiterleiten. Eine einfachere Lösung für austauschbare Benutzerdaten besteht darin, alle Core Data-Sicherungsdateien zu entfernen und beim nächsten Öffnen der App zu starten. Der Schlüssel ist, um Ihre Design-Prozess so einfach mit den besten Techniken und Werkzeugen zu halten. Sobald Sie investiert Zeit für die Einrichtung Ihrer bewährten Prozess nicht lassen Sie die Attraktion auf neue nehmen Sie natürlich ab. Möge die neue Arbeit ein Teil deines Prozesses und der Zeit sein, der Detektor davon ist nicht würdig. Post navigation


No comments:

Post a Comment