Kiedy jestem wdrażania protokołu NSCoding w Objective-C, chciałbym użyć NSStringFromSelector(@selector(name))
aby dostać klucz ścieżkę nieruchomości, jak poniżejczasie kompilacji klucz ścieżka odprawy 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;
}
Lubię to sposób, ponieważ zapobiega błędnemu wpisywaniu bez potrzeby definiowania partii stałych łańcuchowych, a otrzymam ostrzeżenia, jeśli zmienię nazwę tych właściwości. Ale nie mogłem znaleźć sposobu na zrobienie tego w Swift, żadnych pomysłów?
czekać na refleksji API –