关于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(@"\n%@", human);

        [human release];
    }
    return 0;
}

输出的结果:

2014-10-11 20:08:23.475 Description[2217:303]
I am human!
Program ended with exit code: 0
时间: 2024-10-17 09:51:34

关于Description的一些理解的相关文章

OpenCV Feature Detection and Description -- Understand Feature 理解特征

原文链接 https://docs.opencv.org/4.1.2/df/d54/tutorial_py_features_meaning.html 阅读英文文档开始理解opencv图像识别.有翻译不对的地方,大家指正-谢谢 Goal In this chapter, we will just try to understand what are features, why are they important, why corners are important etc. 目标: 在这个章节

PhpDocumentor手册-安装和标签使用

PhpDocumentor手册-安装和标签使用 1.安装 必须包含:php 5.3.3版本以上, intl for php 扩展 ,Graphviz 安装方式 使用 pear 命令 pear channel-discover pear.phpdoc.org pear install phpdoc/phpDocumentor 2.DocBlock基本语法 DocBlock(文档块) /** * phpdocumentor 测试. * */ DocBlock使用范围在以下结构元素中 l  names

关于meta位置网站SEO的内容

4. title避免多次重复,例如:"苏州seo_苏州seo优化_苏州seo外包_苏州seo推广",这样的重复意义不是太大,不妨使用:"苏州seo优化_外包_推广_xx网"这样的形式,对于关键词匹配影响不大,却能提升搜索结果展示体验和专业程度,提高点击率5. description你可以理解为,用title中的关键词很自然的造个句,另外加入你的营销内容和品牌信息即可3. keywords,选择元词,不要使用长尾,比如你可以使用"苏州seo.苏州seo优化.

HBase默认配置文件 hbase-default.xml 注释解析

HBase默认配置文件注释解析: hbase-default.xml <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <!-- hbase的本地临时目录,每次机器重启数据会丢失,建议放到某个持久化文件目录下 --> <property> &l

「ZJOI2015」地震后的幻想乡

传送门 Description 题目的理解方式: 给定\(n\)个点,和\(m\)条边,每条边的期望完成时间都是一个\([0,1]\)内的随机数 求使得所有点都联通的期望时间 \(n \leq 10\) Solution 首先,对于\(n\)个\([0,1]\)之间的随机变量\(x_1,x_2,x_3,...,x_n\),第\(k\)小的那个数的期望值是\(\frac{k}{n+1}\) 所以,此题等价于是生成树的\(n-1\)条边中最后一个出现的边的期望排名 假设这个排名为\(i\)的概率是\

Hbase 优化参数

在Hbase使用中,除了进行预分区,rowkey合理的设计外,平时也会对系统的内置参数进行优化 1. 堆内存的优化 HBase-site.xml <!-- regionServer的全局memstore的大小,超过该大小会触发flush到磁盘的操作,默认是堆大小的40%,而且regionserver级别的 flush会阻塞客户端读写 --> <property> <name>hbase.regionserver.global.memstore.size</name

深入理解iPhone数据持久化(手把手教你iphone开发 – 基础篇)

在所有的移动开发平台数据持久化都是很重要的部分:在j2me中是rms或保存在应用程序的目录中,在symbian中可以保存在相应的磁盘目录中和数据库中.symbian中因为权限认证的原因,在3rd上大多数只能访问应用程序的private目录或其它系统共享目录.在iphone中,apple博采众长,提供了多种数据持久化的方法,下面笔者会逐个进行详细的讲解. iphone提供的数据持久化的方法,从数据保存的方式上讲可以分为三大部分:属性列表.对象归档.嵌入式数据库(SQLite3).其他方法. 一.属

深入理解Runloop,看我一篇就够了

前言 RunLoop 是 iOS 和 OSX 开发中非常基础的一个概念,为了让大家更加快速融入,请先一段代码: + (NSThread *)networkRequestThread { static NSThread *_networkRequestThread = nil; static dispatch_once_t oncePredicate; dispatch_once(&oncePredicate, ^{ _networkRequestThread = [[NSThread alloc

Map 综述(二):彻头彻尾理解 LinkedHashMap

摘要: HashMap和LinkedList合二为一即是LinkedHashMap.所谓LinkedHashMap,其落脚点在HashMap,因此更准确地说,它是一个将所有Entry节点链入一个双向链表LinkedList的HashMap.由于LinkedHashMap是HashMap的子类,所以LinkedHashMap自然会拥有HashMap的所有特性.比如,LinkedHashMap的元素存取过程基本与HashMap基本类似,只是在细节实现上稍有不同.当然,这是由LinkedHashMap