NSLog an object's memory address in overridden description method

前端 未结 2 1426
情话喂你
情话喂你 2020-12-22 21:51

I am overriding an object\'s description method. I need to know how to print the object\'s memory address to replace {???} in the code below:

-(NSSt         


        
相关标签:
2条回答
  • 2020-12-22 21:57

    The easiest method is to use the super description

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

    So in the case of this model object that is a subclass of NSObject, you can dodge extra work and remembering %p.

    Manually using NSStringWithClass() and %p

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

    So in the case of an object model in which you have a concrete implementer that is derived from this class you will show the correct class name.

    0 讨论(0)
  • 2020-12-22 22:07

    To print address use %p format specifier and self pointer:

    -(NSString *) description {
        return [NSString stringWithFormat:@"<SomeClass: %p>\nparmeterOne: %@\nparameterTwo: %@",
                self, self.parameterOne, self.paramterTwo];
    }
    
    0 讨论(0)
提交回复
热议问题