2010-09-20 13 views
1

J'ai un objet (TestSession) qui est conforme à NSCoder et quand je l'utilise:encodeWithCoder pas appelé

[NSKeyedArchiver archiveRootObject:testSession toFile:filename]; 

Il a:

@interface Session : NSObject <NSCoding> { 

et a encodeWithCoder: et initWithCoder: fonctions. Les deux ne sont pas appelés. Qu'est-ce qui empêcherait cela?

- (void)encodeWithCoder:(NSCoder *)encoder 
- (id)initWithCoder:(NSCoder *)decoder 

Est-ce que ceux-ci doivent être déclarés dans l'en-tête?

+0

Comme votre classe est conforme au protocole 'NSCoding', vous n'avez pas besoin de déclarer les méthodes dans votre en-tête. –

+0

Je n'ai pas été. Alors qu'est-ce qui empêcherait encodeWithCoder: d'être appelé? –

Répondre

1

WHOOPS! J'ai oublié de conserver mon objet testSession après l'avoir créé. Je suis un peu rouillé: P