Question

Je veux ajouter un NSMutableArray de NSStrings à un de mes entités dans mon modèle de données de base. Le problème est que ce n'est pas un type pris en charge dans le Core Data.

J'ai essayé de faire un attribut tranformable, mais le problème est que je ne vois aucun moyen de transformer un NSMutableArray à NSData, puis aller de NSData, de retour à un NSMutableArray. Est-ce que quelqu'un a une idée de la façon dont ce problème peut être résolu?

(Je sais que je peux archiver le tableau, mais je ne veux pas faire ça, je veux que ce soit présent dans mon modèle).

Était-ce utile?

La solution

Vous pouvez avoir un attribut de données binaires dans votre objet modélisé, archiver l'ensemble des données, et le remettre hors tension à l'objet.

Mais je pense que la meilleure façon serait d'avoir un à plusieurs, au lieu d'utiliser un tableau directement.

**** Edit: Voici comment archiver le tableau dans NSData afin qu'il puisse être utilisé dans votre objet géré ***

NSData *arrayData = [NSKeyedArchiver archivedDataWithRootObject:[NSArray arrayWithObjects:@"1",@"2", nil]];

En fait, toute la classe que vous avez conforme au protocole NSCoding peut être archivé de cette façon. NSArray / NSMutableArray conforme déjà à elle. Ils disent tous leurs objets de s'archiver, de sorte qu'ils doivent se conformer aussi. Et doit être conforme, etc. Il est comme un arbre tous les membres de ces objets.

Depuis votre tableau est conforme, et il est un tableau de NSString (qui est également conforme), alors vous êtes en or.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top