我想序列化一個對象,其中包含一些數據字段...其中一個字段的數據類型NSData將不會序列化。我遵循http://www.isolated.se的指示,但我的代碼(見下文)導致錯誤「[NSConcreteData data]:無法識別的選擇器發送到實例...」。我如何序列化我的對象?如何序列化包含NSData的對象?
頭文件
@interface Donkey : NSObject<NSCoding>
{
NSString* s;
NSData* d;
}
@property (nonatomic, retain) NSString* s;
@property (nonatomic, retain) NSData* d;
- (NSData*) serialize;
@end
實現文件:
@implementation Donkey
@synthesize s, d;
static NSString* const KEY_S = @"string";
static NSString* const KEY_D = @"data";
- (void) encodeWithCoder:(NSCoder*)coder
{
[coder encodeObject:self.s forKey:KEY_S];
[coder encodeObject:self.d forKey:KEY_D];
}
- (id) initWithCoder:(NSCoder*)coder;
{
if(self = [super init])
{
self.s = [coder decodeObjectForKey:KEY_S];
self.d = [coder decodeObjectForKey:KEY_D];
}
return self;
}
- (NSData*) serialize
{
return [NSKeyedArchiver archivedDataWithRootObject:self];
}
@end
您在NSData * d中設置哪種數據類型?請檢查是否NSCoding投訴.... – 2010-04-09 14:02:34