Quando sto attuano il protocollo di NSCoding in Objective-C, vorrei utilizzare NSStringFromSelector(@selector(name))
per ottenere il percorso della chiave di una proprietà, come qui di seguitoCompile percorso della chiave di tempo il check-in Swift
- (void)encodeWithCoder:(NSCoder *)aCoder {
[aCoder encodeObject:self.accountName forKey:NSStringFromSelector(@selector(accountName))];
[aCoder encodeObject:self.userId forKey:NSStringFromSelector(@selector(userId))];
}
- (id)initWithCoder:(NSCoder *)aDecoder {
self = [super init];
if (self) {
_accountName = [aDecoder decodeObjectForKey:forKey:NSStringFromSelector(@selector(accountName))];
_userId = [aDecoder decodeObjectForKey:forKey:NSStringFromSelector(@selector(userId))];
}
return self;
}
Mi piace questo perché impedisce l'errata digitazione senza la necessità di definire molte costanti di stringa e ricevo avvertenze se le mie proprietà vengano rinominate. Ma non riuscivo a trovare un modo per farlo in Swift, qualche idea?
attendere la riflessione API –