web-dev-qa-db-fra.com

Comment des données de manière non arrive avec UNARCHEDEDOBYSCLASSCLASS: Fromdata: Erreur :?

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."

8
Ion Batîr

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];
1
Eugene