2016-07-15 19 views
1

Ich habe eine iOS-App, die eine SQLite-Datenbank verwendet. Das funktioniert sehr gut. Jetzt habe ich eine WatchKit App Extension hinzugefügt und möchte eine Verbindung zu dieser bestehenden Datenbank herstellen, die sich im Ordner Dokumente meiner iPhone App befindet.WatchKit: Swift - Wie kann ich Daten in meine sqlite-Datenbank, die sich in meinem iPhone App-Dokumentenordner befindet, ablegen und ablegen?

Kann mir bitte jemand zeigen, wie man das macht?

Ich habe bereits eine App-Gruppe (das gleiche für alle Erweiterungen) erstellt.

Wenn es darauf ankommt, wird die iOS App in Objective-C geschrieben, und die Watch App wird in Swift geschrieben.

Screenshot of iPhoneApp and WatchApp

Antwort

1

Seit watchOS 2, die Uhr App kann nicht mehr Zugriff auf Daten in der gemeinsam genutzten App-Gruppe, da die Uhr App-Erweiterung auf der Uhr läuft nun statt des iPhone.

Eine freigegebene App-Gruppe wird nicht erreichen, was Sie wollen. Sie müssen Watch Connectivity verwenden, um zu erreichen, was Sie wollen. 1

Ansatz:

pflegen zwei separate Datenbanken - ein am Telefon, und eine auf der Uhr - und halten Sie die zwei separate Datenbanken synchron.

Dies ist nützlich, wenn die Uhr Zugriff auf alle Daten benötigt und unabhängig vom Telefon betrieben werden muss, wenn sie nicht erreichbar ist.

transferUserInfo wäre eine gute Lösung für diesen Ansatz, um neue, aktualisierte oder gelöschte Tauchpläne zwischen dem Telefon und der Uhr zu synchronisieren.

Sie könnten auch transfer the entire database zwischen dem Telefon und der Uhr, aber das ist in der Regel weniger energieeffizient als nur Änderungen zu senden.

Ansatz 2:

nur den aktuellen Kontext auf die Uhr übertragen, so dass der Benutzer Blick auf die Uhr konnten die gleichen Informationen, um zu sehen, dass das Telefon zeigt worden wäre.

Für so etwas wie deine Tauch-App wird vielleicht nur ein aktueller oder bevorstehender Tauchplan übertragen, anstatt jeden Tauchplan auf dem kleineren Bildschirm anzuzeigen.

updateApplicationContext wäre eine gute Lösung für diesen Ansatz, um die neuesten Informationen zu übermitteln, die auf der Uhr angezeigt werden sollten.