NSLog函式重寫

richard_飛飛發表於2013-11-14

跟C++的輸出函式相比,NSlog函式有個很大的優勢,就是它可以輸出物件。

在實際使用過程中,我們可以通過實現description函式來實現對NSLog函式的重寫

-(NSString*)description

{

    NSString *ret=[NSString stringWithFormat:@"name= %@,age=%@",self.name,self.age];

    return ret;

}

具體sample如下:


#import <Foundation/Foundation.h>

@interface person : NSObject

@property(nonatomic,retain)NSString *name;

@property(nonatomic,retain)NSNumber *age;

@end

 

person.m檔案:

#import "person.h"

@implementation person

-(NSString*)description

{

    NSString *ret=[NSString stringWithFormat:@"name= %@,age=%@",self.name,self.age];

    return ret;

}

-(void)dealloc

{

    [_name release];

    [_age release];

    [super dealloc];

}

@end


main函式:

int main(int argc, const char * argv[])

{

    

    @autoreleasepool {

        person *personObj=[[person alloc] init];

        personObj.name=@"andy";

        personObj.age=[NSNumber numberWithInt:34];

        NSLog(@"the obj is %@",personObj);

        

    }

    return 0;

}

輸出結果:

2013-11-14 14:31:17.730 elementFirst[2824:303] the obj is name= andy,age=34



相關文章