objective-c nslog

objective c - NSLog la dirección de memoria de un objeto en el método de descripción reemplazado



objective-c (2)

El método más fácil es usar la super descripción

- (NSString *)description { return [NSString stringWithFormat:@"%@ Area: %@, %@", [super description], self.identifier, self.name]; }

Entonces, en el caso de este modelo de objeto que es una subclase de NSObject, puede esquivar el trabajo adicional y recordar %p .

Manualmente usando NSStringWithClass () y% p

- (NSString *)description { return [NSString stringWithFormat:@"<%@: %p> Area: %@, %@", NSStringFromClass([self class]), self, self.identifier, self.name]; }

Entonces, en el caso de un modelo de objetos en el que tiene un implementador concreto que se deriva de esta clase, mostrará el nombre de clase correcto.

Estoy anulando el método de descripción de un objeto. Necesito saber cómo imprimir la dirección de memoria del objeto para reemplazar {???} en el siguiente código:

-(NSString *) description { return [NSString stringWithFormat:@"<SomeClass: %@>/nparmeterOne: %@/nparameterTwo: %@", {???}, self.parameterOne, self.paramterTwo]; }

Quiero que se imprima en la consola de esta manera:

<SomeClass: 0x4c05600> parameterOne: 12 parameterTwo: sausages


Para imprimir la dirección use %p format specifier y self pointer:

-(NSString *) description { return [NSString stringWithFormat:@"<SomeClass: %p>/nparmeterOne: %@/nparameterTwo: %@", self, self.parameterOne, self.paramterTwo]; }