2017-01-02 1 views
1

Ich habe eine iPhone App, die ich mit Xamarin entwickelt habe und auf HockeyApp veröffentlichen. Immer wenn ich eine neue Version der App auf HockeyApp stelle und jemand seine aktuelle Installation auf seinem Telefon aktualisiert, verlieren sie die gespeicherten Daten. Gibt es einen Weg dies zu verhindern?iOS App gespeichert Daten verloren nach der Aktualisierung

EDIT

ich einen Anspruch haben, die mich lassen ist zu, die Daten mit meinem Widget teilen. Könnte das das Problem sein? Dies ist, wie ich schreibe/Lesen der Daten:

this.nsUserDefaults = new NSUserDefaults("myGroupId", NSUserDefaultsType.SuiteName); 

// Write data: 
this.nsUserDefaults.SetString("myValue", "myKey"); 
this.nsUserDefaults.Synchronize(); 

// Read data: 
string myValue = this.nsUserDefaults.StringForKey("myKey"); 

EDIT

Nach den obigen Code auf der folgenden ändern, es bleibt nun die gespeicherten Daten nach der Aktualisierung:

// Write data: 
NSUserDefaults.StandardUserDefaults.SetString("myValue", "myKey"); 
NSUserDefaults.StandardUserDefaults.Synchronize(); 
// Read data: 
string myValue = NSUserDefaults.StandardUserDefaults.StringForKey("myKey"); 

Aber jetzt kann ich keine Daten mehr mit meinem Widget teilen ... Wie kann ich das lösen und trotzdem die Daten mit meinem Widget teilen?

+1

Wie speichert Ihre App Daten? 'NSUserDefaults', Keychain, CoreData? –

+0

NSUserDefaults. – Darius

+0

bestehen die Daten zwischen verschiedenen Starts der App? Teilen Sie auch einige Details darüber, welche Art von Daten Sie speichern? – Adeel

Antwort

0

Wenn Sie versuchen, die Daten vor dem Aufrufen von this.nsUserDefaults.Synchronize(); zu lesen, erhalten Sie die Daten nicht.

Also, wenn Sie tun:

this.nsUserDefaults = new NSUserDefaults("myGroupId", NSUserDefaultsType.SuiteName); 

// Read data: 
string myValue = this.nsUserDefaults.StringForKey("myKey"); 

Sie werden nicht die Daten erhalten. Aber wenn Sie die Synchronize() -Methode vor dem Lesen aufrufen, erhalten Sie die Daten:

Verwandte Themen