Objective c 编码器未被调用

Objective c 编码器未被调用,objective-c,decode,encode,nskeyedarchiver,Objective C,Decode,Encode,Nskeyedarchiver,我有一个符合NSCoder的对象(testSession),当我使用: [NSKeyedArchiver archiveRootObject:testSession toFile:filename]; 它有: @interface Session : NSObject <NSCoding> { 这些需要在标题中声明吗?哇!创建testSession对象后,我忘记了保留它。我有点生疏了:哎呀!创建testSession对象后,我忘记了保留它。我有点生疏了:P因为你的类符合NSCod

我有一个符合NSCoder的对象(testSession),当我使用:

[NSKeyedArchiver archiveRootObject:testSession toFile:filename];
它有:

@interface Session : NSObject <NSCoding> {

这些需要在标题中声明吗?

哇!创建testSession对象后,我忘记了保留它。我有点生疏了:哎呀!创建testSession对象后,我忘记了保留它。我有点生疏了:P

因为你的类符合
NSCoding
协议,你不需要在你的头中声明方法。我没有。那么,什么可以阻止encodeWithCoder:被调用呢?因为您的类符合
NSCoding
协议,所以您不需要在头中声明方法。我没有这样做。那么,是什么阻止了encoderWithCoder:被调用呢?
- (void)encodeWithCoder:(NSCoder *)encoder
- (id)initWithCoder:(NSCoder *)decoder