zoukankan      html  css  js  c++  java
  • 关于Description的一些理解

    在C语言上, 我们用来打印东西的函数叫做printf, 它是专门用来打印东西在屏幕上给我们看的, 虽然printf在OC上也可以使用, 但是有一定的局限性, 不能很好的兼容OC的一些新特性, 在此OC提供了一个名叫NSLog的打印函数, 这个函数和printf一样, 是通过@""专门用来打印一些内容显示给我们看的.

    我们知道NSLog是用来打印的, 但是它是怎么运作的呢?让我们来看看它涉及哪个方法, 所以才能如此简单.

    这里涉及到一个方法:

    description: 这个方法其实很简单, 就是用来接受东西和返回东西的, 它会通过编译器传给它的东西进行一个封装, 形成一个新的字符串, 并且把这个新的字符串地址返回给编译器.

     

    下面是关于它的一个简单例子:

     

    首先我们需要创建一个类:

    这个是Human的.h文件

    #import <Foundation/Foundation.h>
    
    @interface Human : NSObject
    
    @end

    这里是Human的.文件, 在这里我们重写了description的返回值.

    #import "Human.h"
    
    @implementation Human
    
    //这里是重写了一个关于description的方法, description是什么?
    //description就是我们在OC上经常使用的打印函数NSLog的方法.
    //description会把@""里面的内容放在一个括号里, 形成一个新的字符串并且返回新字符串的地址.
    //用NSLog打印出来.
    - (NSString *)description
    {
        return @"I am human!";
    }
    @end

    这里是main.m文件

    #import <Foundation/Foundation.h>
    #import "Human.h"
    
    int main(int argc, const char * argv[]) {
        @autoreleasepool {
    
            Human *human = [Human new];
    
            NSLog(@"
    %@", human);
    
            [human release];
        }
        return 0;
    }

    输出的结果:

    2014-10-11 20:08:23.475 Description[2217:303] 
    I am human!
    Program ended with exit code: 0
  • 相关阅读:
    rs
    stm32f767 usoc3
    stm32f767 RTT 日志
    stm32f767 标准库 工程模板
    stm32f767 HAL 工程模板
    docker tab 补全 linux tab 补全
    docker anconda 依赖 下载 不了
    docker run 常用 指令
    linux scp 命令
    Dockerfile 常用参数说明
  • 原文地址:https://www.cnblogs.com/iOSCain/p/4019697.html
Copyright © 2011-2022 走看看