Ich wollte eine etwas unkonventionelle Lösung teilen, die ich für dieses Problem gefunden habe und den ENORMEN Vorteil hat, keinen Server zu benötigen. Diese Methode ermöglicht es Benutzern, ihre verbrauchbaren Gegenstände wiederherzustellen, wenn die App gelöscht und neu installiert wird, erlaubt es ihnen aber nicht, die Gegenstände auf ein neues Gerät zu übertragen (es sei denn, alle ihre App-Daten werden kopiert).
Daten, die im Schlüsselbund gespeichert sind, bleiben erhalten, wenn eine App gelöscht und neu installiert wird. Der Schlüsselbund ist dazu gedacht, Benutzernamen und Passwörter zu speichern, aber man kann auch Informationen über verbrauchbare Käufe dort speichern. Ich habe die KeychainItemWrapper-Klasse verwendet, die hier verfügbar ist: https://developer.apple.com/library/content/samplecode/GenericKeychain/Introduction/Intro.html
Hier ist ein Beispielcode, bei dem ich die Anzahl der verbleibenden kostenpflichtigen Hinweise eines Benutzers speichere und abrufe:
//Speichern der verbrauchbaren Hinweis-Elementanzahl
int verbleibendeHinweise = 100;
KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier="Hints" accessGroup:nil];
NSString *hinweisString = [NSString stringWithFormat:@"%i",verbleibendeHinweise];
[wrapper setObject:hinweisString forKey:(id)kSecValueData];
[wrapper release];
//Abruf
KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier="Hints" accessGroup:nil];
NSString *numHints = [wrapper objectForKey:(id)kSecValueData];
[wrapper release];
int abgerufeneHinweise = [numHints intValue];
Notizen:
-
Der Schlüssel (id)kSecValueData kann kein beliebiger String sein, es gibt eine festgelegte Liste von Konstanten, die Sie als Schlüssel verwenden können.
-
Sie müssen das Security Framework hinzufügen