Search code examples
objective-cnslog

Objective C override %@ for custom objects


I'd like to override the default print function in NSLog for custom objects;

For example:

MyObject *myObject = [[MyObject alloc] init];
NSLog(@"This is my object: %@", myObjcet);

Will print out:

This is my object: <MyObject: 0x4324234>

Is there a function I override in MyObject to print out a prettier description?

Cheers! Nick.


Solution

  • Just implement the description method.

    - (NSString *)description {
         return @"MyCustomDescription";
    }
    

    This is the method used to print an instance.