零基础,不懂就问,objective-c的消息(一年后的更新)

在objective-c编程的教程中,有一个是关于消息详解的内容,但不是很能理解。

消息发送(指令)必须写在一对方括号中,并且必须包含以下两部份。

  • 指针,指向接收消息的对象。

  • 方法名,要触发的方法的方法名。

但是我看到例子里,好像有的消息是没有指针的,代码如下:

NSDate *now = [NSDate date];
NSLog(@"the new date lives at %@", now);
double seconds = [now timeIntervalSince1970];
NSLog(@"It has been %f seconds since the start of 1970.", seconds);

在第三行代码里,now是一个指针,我可以理解。但在第一行代码里,好像消息发送是没有指针的,也许我的理解有误,NSDate就是一个指针,只是我不知道。

希望有好心人帮我〜


将近一年的时间因为工作太忙,没有好好学习,前段时间项目告一段落,又捧起书本。结果看到上面的一段内容还是无法完全理解,或者说不知道自己理解的是否正确,还是回来这里再问问大家吧,谢了!

补充内容

我找到了英文原版的这部份内容,如下:

NSDate *now = [NSDate date];

[NSDate date]

NSDate

the receiver : a pointer to the object or class that has the method that you want to execute.

date

the selector : the name of the method that you want to execute

selector这一段可以理解,但是NSDate receiver这一段,我还是理解得比较模糊,我理解的是拥有执行方法的指针对象或者类?可以点拨一下我么?谢谢大家了!

阅读 2.8k
1 个回答

NSDate就是接收消息的对象
这里的指针 并不指代C语言中的指针类型, 这里应该是翻译或者表述问题。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏