0
@interface Esame : NSObject{
    NSString *nome;
    int voto;
    int crediti;
    int anno;
}

@property (nonatomic, retain) NSString *nome;


- (id)initWithNome:(NSString*)nome voto:(int)voto crediti:(int)crediti anno:(int)anno;

@end

这是我的实现

#import "Esame.h"

@implementation Esame

@synthesize nome;


- (id)initWithNome:(NSString*)name voto:(int)voto crediti:(int)crediti anno:(int)anno {
    if ((self = [super init])) {
        self.nome = name;



    }
    return self;
}

- (id)initWithCoder:(NSCoder *)decoder {
    if (self = [super init]) {

        nome = [decoder decodeObjectForKey:@"nome"] ;
        voto = [decoder decodeIntForKey:@"voto"];
        crediti = [decoder decodeIntForKey:@"crediti"];
        anno = [decoder decodeIntForKey:@"anno"];

    }
    return self;
}

- (void)encodeWithCoder:(NSCoder *)encoder {

    if (nome) [encoder encodeObject:nome forKey:@"nome"];

    if (voto) [encoder encodeInt:voto forKey:@"voto"];
    if (crediti) [encoder encodeInt:crediti forKey:@"crediti"];
    if (anno) [encoder encodeInt:anno forKey:@"anno"];

}


@end

我收到了同样奇怪的错误……特别是在 NSString 中……出了什么问题?

4

1 回答 1

1

encodeInt:尝试在您的;之前删除您的条件。您可能应该始终对所有成员进行编码。此外,您可能应该声明您符合 NSCoding with @interface Esame : NSObject<NSCoding>.

如果这不起作用,请尝试发布您看到的错误消息。

于 2012-07-29T13:56:57.047 回答