• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

icloud sync ohne internet

SpecialFighter

Fießers Erstling
Registriert
25.04.12
Beiträge
131
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.
 

FelixII

Macoun
Registriert
17.08.09
Beiträge
123
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
 

ckheman

Erdapfel
Registriert
11.05.16
Beiträge
5
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