我将 CCSpriteBatchNode 子类化为一个符合 NSCoding 的对象。我主要对 CCSpriteBatchNode 的字符串名称感兴趣。设置断点后,我意识到对象的字符串名称始终为零。我有一种感觉,我的重写方法可能是一个促成因素,但我不太确定。请参阅下面的相关代码:
SpriteBatchNode 接口:
@interface SpriteBatchNode: CCSpriteBatchNode {
NSString* batchImageName;
}
SpriteBatchNode 实现:
const NSUInteger defCapacity = 29;
@implementation SpriteBatchNode
@synthesize batchImageName;
+(id)batchNodeWithFile:(NSString*) imageFile
{
return [[self alloc] initWithFile:imageFile capacity:defCapacity];
}
-(id)initWithFile:(NSString *)fileImage {
self = [super initWithFile:fileImage capacity:defCapacity];
if (!self) return nil;
batchImageName = fileImage;
return self;
}
-(id)initWithCoder:(NSCoder *)aDecoder
{
NSString* spriteBatchNodeFileImage = [[aDecoder decodeObjectForKey:@"batchImageName"] copy];
self = [super initWithFile:spriteBatchNodeFileImage capacity:defCapacity];
if (!self) return nil;
return self;
}
-(void)encodeWithCoder:(NSCoder *)aCoder
{
[aCoder encodeObject:batchImageName forKey:@"batchImageName"];
}
@end