2010-04-08 2 views
0

J'utilise une classe Objective c, une sous-classe de NSObject. Cette classe ne peut pas être modifiée. J'ai une instance de cette classe que je souhaite écrire dans un fichier qui peut être récupéré et réintégré plus tard. L'objet n'est pas conforme à NSCoding.[iPhone] Objective C, objets qui ne sont pas conformes à NSCoding. Comment les écrire dans un fichier

En résumé, je dois enregistrer une instance d'une classe dans un fichier qui peut être récupéré plus tard, sans utiliser des méthodes telles que NSCoding NSKeyedArchiving encodeWithCoder ...

En utilisant les renvoie ce .. . NSInvalidArgumentException ... encodeWithCoder:] sélecteur non reconnu envoyé à l'instance ...

est-ce que vous y d'une autre façon que je peux stocker cet objet pour une utilisation ultérieure Merci

ps La classe est un UIEvent

+2

Pourriez-vous nous expliquer pourquoi vous souhaitez archiver un événement? La raison pour laquelle UIEvent n'est pas conforme à NSCoding est que ce n'est pas habituellement considéré comme des données qui devraient être persistantes. – NSResponder

+0

Je suis avec NSResponder. On dirait que vous essayez de faire quelque chose qui serait mieux géré d'une autre manière qui n'impliquerait pas l'archivage UIEvents. – Jaanus

Répondre

2

Pouvez-vous sous-classer la classe et implémenter le protocole NSCoding dans la sous-classe?

+0

Merci mais la classe a beaucoup de membres internes qui ne supportent pas NSCoding et la classe ne peut pas être sous-classée – 123hal321

0

En fonction de ce que l'objet a comme membres, vous pouvez créer un dictionnaire et définir la valeur de chaque membre comme une clé dans le dictionnaire, puis l'écrire dans un fichier.

Cependant, je ne comprends pas pourquoi vous ne pouvez pas sous-classer l'objet et implémenter le protocole NSCoding, comme suggéré par Jaanus?

+0

Les membres ne supportent pas NSCoding et je ne peux pas sous-classer la classe, je me demandais s'il y avait une fonction C relativement faible le copier de la mémoire ou quelque chose comme ça ?? Je ne peux pas accéder à certaines des propriétés d'objets car elles sont privées – 123hal321

+0

Y at-il de toute façon à le faire sans NSCoding du tout – 123hal321

+0

** POURQUOI ** ne pouvez-vous pas sous-classer la classe? Qu'est-ce qui empêche cela? – Jasarien

Questions connexes