OC description方法的使用


//
//  Teacher.h
//  description
//
//  Created by LiuWei on 15/4/15.
//  Copyright (c) 2015年 LiuWei. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Teacher : NSObject

@end

//
//  Teacher.m
//  description
//
//  Created by LiuWei on 15/4/15.
//  Copyright (c) 2015年 LiuWei. All rights reserved.
//

#import "Teacher.h"

@implementation Teacher

@end

//
//  Student.h
//  description
//
//  Created by LiuWei on 15/4/15.
//  Copyright (c) 2015年 LiuWei. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Student : NSObject
@property NSString *name;

@property int age;

- (NSString*)description;

+ (NSString*)description;

@end

//
//  Student.m
//  description
//
//  Created by LiuWei on 15/4/15.
//  Copyright (c) 2015年 LiuWei. All rights reserved.
//

#import "Student.h"

@implementation Student
- (NSString *)description
{
    return [NSString stringWithFormat:@"name:%@, age:%i", _name, _age];
}

+ (NSString *)description
{
    return @"Class name is Student";
}

@end


//
//  main.m
//  description
//
//  Created by LiuWei on 15/4/15.
//  Copyright (c) 2015年 LiuWei. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Teacher.h"
#import "Student.h"

int main()
{
    Teacher *t = [[Teacher alloc]init];
    
    // NSLog函数输出信息 格式化字符为 %@, 参数为对象时
    // 如果没有重写对象的 -(NSString*)description 方法则默认调用父类的description方法
    // 并以此方法返回的NSString*作为 NSLog的参数
    // 默认方法输出  <类名: 对象地址>
    NSLog(@"没有重写description对象方法: %@", t);
    
    // 如果参数为类时, 且没有重写类方法 +(NSString*)description 方法则默认调用父类的description类方面
    // 默认输出 类名
    NSLog(@"没有重写description类方法: %@", [t class]);
    
    
    Student *s = [[Student alloc]init];
    s.name = @"Lucy";
    s.age = 26;
    
    // 如果重写了对象方法 description NSLog会调用重写之后description方法返回的NSString*做为参数
    NSLog(@"重写了description对象方法: %@", s);
    NSLog(@"重写了description类方法: %@", [s class]);
    
    
    return 0;
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值