【iOS】——处理对象(打印对象和description)

打印对象和description方法

1.description方法是NSObject类的一个实例方法,所有的Objective-C类都是NSObject类的子类,因此,所有的Objective-C都具有description方法。
2.description方法通常用于实现一个功能:当程序直接打印该对象时,系统会输出该对象的“自我描述”信息,用于告诉外界该对象具有的状态信息。
3.NSObject类提供的desription方法总是返回该对象的首地址,这个返回值并不能实现“自我描述”的功能,因此,如果用户需要自定义类能实现“自我描述”的功能,必须重写NSObject类的description方法。

很多时候,重写description方法可以返回该对象所有令人感兴趣的信息所组成的字符串,格式通常如下:

<类名 [实例变量1 =1, 实例变量2 =2,...]> 

示例:

//FKApple.h
#import <Foundation/Foundation.h>

@interface FKApple : NSObject
@property (nonatomic , copy) NSString* color;
@property (nonatomic , assign) double weight;
- (id) initWithColor: (NSString*) color weight : (double) weight;
@end
//FKApple.m
#import "FKApple.h"

@implementation FKApple
@synthesize color = _color;
@synthesize weight = _weight;
- (id) initWithColor:(NSString *)color weight:(double)weight {
    if (self = [super init]) {
        self.color = color;
        self.weight = weight;
    }
    return self;
}
- (NSString*) description {
    return [NSString stringWithFormat: @"<FKApple[_color = %@, _weight = %g]>", self.color, self.weight];
}
@end
//主函数
#import <Foundation/Foundation.h>
#import "FKApple.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        FKApple* a = [[FKApple alloc] initWithColor:@"红色" weight:5.68];
        NSLog(@"%@" , a);
    }
}

效果:
在这里插入图片描述

从上面的运行结果可以看出,通过重写FKApple类的description方法,就可以让系统在打印FKApple对象时打印出该对象的“自我描述”信息。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值