• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

icloud sync ohne internet

SpecialFighter

James Grieve
Registriert
25.04.12
Beiträge
132
Hallo zusammen,

ich rüste meine app mit icloud auf.

kurzes bespiel:
in meiner app kann man in einem tableview einen eintrag machen.
wenn der eintrag gespeichert wird, wird dieser im core data abgelegt.

zukünftig soll es so gehen:
iCloud aktiv ?
-> ja -> Einträge werden in iCloud gespeichern / davon abgerufen
-> nein -> Einträge werden in Core Data gespeichern / davon abgerufen

da dass Thema iCloud für mich aktuell neu ist, habe ich allerdings noch offene Fragen.
wenn icloud aktiv ist, überprüfe ich vor dem speichern, ob eine Internetverbindung besteht (Code dafür existiert bereits)
- was mache ich denn, wenn keine Verbindung existiert. wo soll der Datensatz dann gespeichert werden?
- wann und wie soll ich diesen später am besten nachtragen lassen?

Die Daten sollen auch verfügbar sein, wenn keine Internetverbindung besteht.
- Wie soll ich die Daten anzeigen lassen, wenn diese aus der iCloud ohne Verbindnung nicht angezeigt werden können?

Meine App läuft unter ios 9 mit swift 2
Freue mich sehr auf eure Hilfe & Unterstüzung.
 
Hi,

welche iCloud-Anbindung nutzt du?

Bei iCloud Key-Value-Storage übernimmt das System für dich die Synchronisation. Wenn keine Internetverbindung besteht, cached das Gerät die Änderungen lokal und synchronisiert sich bei der nächsten Möglichkeit mit den iCloud-Servern.

Bei CloudKit bist du selbst für die Synchronisation verantwortlich. Eine CKModifyRecordsOperation liefert dir bei fehlender Internetverbindung den Fehler "NetworkUnavailable" und die Einträge zurück, die du speichern wolltest. In meiner App speichere ich die Daten dann lokal auf einer Warteschlange ab, die bei jedem Synchronisationsversuch abgearbeitet wird. Sobald eine Synchronisation geklappt hat, entferne ich den Eintrag wieder von der Warteschlange.

Generell solltest du deine (Nutzer-)Daten aber immer auch lokal speichern, da deine App sonst bei jeder Aktion mit dem Internet kommunizieren muss. Deinen lokalen Datenstand gleichst du dann mit den iCloud-Servern ab.

Gruß Felix
 
Vielleicht ist ja auch iCloud Drive was für dich. Das funktioniert auch offline und synced sobald wieder ne Verbindung besteht.

Mit freundlichen Grüßen
Steffen