Lire les attributs CoreData Transformable créés avec NSAttributedString

Dans mon application j'utilise des attributs transformable dans lesquels est stocké une NSAttributedString.
Jusque là je laissais faire le système en mettant NSAttributedString dans le champ Custom Class de l'entité.
Voulant suivre les recommandations d'Apple qui me dit que le décodage automatique est "deprecated" je cherche à savoir quel format la transformation automatique générait et lisait.
Je lis facilement le Data que je transforme ensuite en un texte. Voici ce que ça donne ( le tout début du texte bien sûr) :
J'ai essayé le HTML, le RTF et autre format.

bplist00‘

X$versionY$archiverT$topX$objects܆_NSKeyedArchiver— TrootÄØg%0123IRZimpsvy|ÇÖàãéëîóúØ∞¥ºΩ™æ¡≈…—’‰ÌÓÒÁ˘

!),$4>HQYZ]eovwzÇêëíõ§ßØß∞∂ƒÕ–ÿŸ‚ÊÔˇ

Je ne sais pas comment interpréter et transformer ce format de fichier.
Quelqu'un a-t-il une idée ou une direction pour me permettre de récupérer mes données ?

Réponses

  • bplist + NSKeyedArchiver...

    Ça sent le gros NSCoding ça, non ?

    Il serait intéressant de passer file le Data en hex string au besoin, s'il n'est pas trop long histoire de tester...

  • Ouais c'est une PList binaire tout ce qu'il y a de plus banal.
    Tu va réussir à récupérer ta NSAttributedString de la sorte :

    let data = // Tu récupère l'objet Data 
    
    let attributedString = try? NSKeyedUnarchiver.unarchivedObject(ofClass: NSAttributedString.self, from: data)
    

    Tu peux gérer les potentielles erreurs comme bon te semble. Moi j'ai utilisé try? parce que c'est passe partout et plus propre que try!.

  • Merci à Larme et Pyroh.
    Cela fonctionne parfaitement.
    Comme disait ma grand-mère : mieux vaut un qui sait que dix qui cherchent.
    Encore mille mercis.

Connectez-vous ou Inscrivez-vous pour répondre.