- (id)initWithKeyValueUnarchiver:(EOKeyValueUnarchiver *)_unarchiver {
if ((self = [super init]) != nil) {
+ NSString *s;
+
self->key = [[_unarchiver decodeObjectForKey:@"key"] copy];
- self->selector =
- NSSelectorFromString([_unarchiver decodeObjectForKey:@"selector"]);
+
+ if ((s = [_unarchiver decodeObjectForKey:@"selector"]) != nil)
+ self->selector = NSSelectorFromString(s);
+ else if ((s = [_unarchiver decodeObjectForKey:@"selectorName"]) != nil) {
+ if (![s hasSuffix:@":"]) s = [s stringByAppendingString:@":"];
+ self->selector = NSSelectorFromString(s);
+ }
}
return self;
}
- (void)encodeWithKeyValueArchiver:(EOKeyValueArchiver *)_archiver {
[_archiver encodeObject:[self key] forKey:@"key"];
[_archiver encodeObject:NSStringFromSelector([self selector])
- forKey:@"selector"];
+ forKey:@"selectorName"];
}
/* description */