J'utilise unarchiveObjectWithData
_ aux données de manière non entreprise de NSUserDefaults
et cela fonctionne bien, mais il a été obsolète dans IOS 12.0. Xcode suggère d'utiliser unarchivedObjectOfClass:fromData:error:
, mais cette méthode ne fonctionne pas.
J'ai un éventail d'objets de ma classe à la non -archive.
J'ai essayé d'utiliser unarchivedObjectOfClass:fromData:error:
, aussi unarchivedObjectOfClasses:fromData:error:
Avec toutes les classes (Nsarray, Nstring, MyClass ..)
Travaux
NSArray *stored = [NSKeyedUnarchiver unarchiveObjectWithData:data];
Ne fait pas:
NSArray *stored = [NSKeyedUnarchiver unarchivedObjectOfClass:[MYCLASS class] fromData:data error:&error];
Je reçois "les données n'ont pas pu être lues car elles ne sont pas dans le bon format."
J'ai fait face à un problème et suivez la réponse @darren, mais non arrêtéObjectclass retour nil! : (
j'ai donc essayé beaucoup de variation et j'ai trouvé que le seul succès est mon cas:
SupportSecurecoding Propriété doit être oui
et
NSArray<MyClassConformedToNSObject_NSCoding_NSSecureCoding *> *arrayOfCustomObjects = [NSKeyedUnarchiver unarchivedObjectOfClass:[NSObject class] fromData:data error:&error];