Je remplace la méthode de description d'un objet. J'ai besoin de savoir comment imprimer l'adresse mémoire de l'objet pour remplacer {???} dans le code ci-dessous:
-(NSString *) description {
return [NSString stringWithFormat:@"<SomeClass: %@>\nparmeterOne: %@\nparameterTwo: %@",
{???}, self.parameterOne, self.paramterTwo];
}
Je veux qu'il soit imprimé dans la console comme ceci:
<SomeClass: 0x4c05600> parameterOne: 12 parameterTwo: sausages
Pour imprimer l'adresse, utilisez %p
spécificateur de format et pointeur libre:
-(NSString *) description {
return [NSString stringWithFormat:@"<SomeClass: %p>\nparmeterOne: %@\nparameterTwo: %@",
self, self.parameterOne, self.paramterTwo];
}
- (NSString *)description
{
return [NSString stringWithFormat:@"%@ Area: %@, %@", [super description], self.identifier, self.name];
}
Ainsi, dans le cas de cet objet modèle qui est une sous-classe de NSObject, vous pouvez éviter les travaux supplémentaires et vous rappeler %p
.
- (NSString *)description
{
return [NSString stringWithFormat:@"<%@: %p> Area: %@, %@", NSStringFromClass([self class]), self, self.identifier, self.name];
}
Ainsi, dans le cas d'un modèle objet dans lequel vous avez un implémenteur concret dérivé de cette classe, vous afficherez le nom correct de la classe.