gpt4 book ai didi

objective-c - Objective C 中的“调用方法”或 'sending a message'

转载 作者:IT老高 更新时间:2023-10-28 11:34:17 25 4
gpt4 key购买 nike

在 C 或任何基于 ECMAscript 的语言中,您可以在对象上“调用公共(public)方法或函数”。但是在 Objective C 的文档中,没有公共(public)方法调用,只有消息的发送。

认为当你在 ObjC 中“发送消息”时实际上是在“调用对象上的公共(public)方法”有什么不对吗?

最佳答案

理论上,它们是不同的。

实际上,没有那么多。

它们在 Objective-C 中的不同之处在于,对象可以选择不响应消息,或者将消息转发到不同的对象,等等。在像 C 这样的语言中,函数调用实际上只是跳转到内存中的某个位置并执行代码。不涉及动态行为。

但是,在标准用例中,当您向对象发送消息时,消息表示的方法通常最终会被调用。所以大约 99% 的情况下,发送消息会导致调用方法。因此,当我们真正的意思是“发送消息”时,我们经常说“调用方法”。所以实际上,它们几乎总是相同的,但它们不一定是

不久前,我对这个话题进行了深入探讨,并在博客上发表了一篇关于它的文章:http://davedelong.tumblr.com/post/58428190187/an-observation-on-objective-c

编辑

要直接回答您的问题,说“调用方法”而不是“发送消息”通常没有错。但是,重要的是要了解存在非常显着的实现差异。

(顺便说一句,我个人的偏好是说“在对象上调用方法”)

关于objective-c - Objective C 中的“调用方法”或 'sending a message',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2852381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com