gpt4 book ai didi

Swift委托(delegate)(contactDelegate)解释

转载 作者:行者123 更新时间:2023-11-28 09:11:31 24 4
gpt4 key购买 nike

我对委托(delegate)的含义进行了很多研究,但不知何故,我的理解与这个解释不符。这是来自教程:

    physicsWorld.contactDelegate = self

这是他的解释:“这将物理世界设置为没有重力,并且将场景设置为代理,以便在两个物理物体发生碰撞时收到通知。

我认为委托(delegate)只是一个使用协议(protocol)的类。有人对此有不同的解释吗?那条线到底是做什么的?谢谢。(忽略引力部分,还有一行代码)

最佳答案

根据 PhysicsWorld class 的 Swift 文档:

contactDelegate Property

A delegate that is called when two physics bodies come in contact with each other.

因此当我们看到这条线时:

physicsWorld.contactDelegate = self

我们在 physicsWorld 实例上设置 contactDelegate 属性,这样当两个物理对象发生碰撞时,将调用一些方法,即委托(delegate)。

通过分配 self,我们将响应物理对象碰撞的责任委托(delegate)给类 (GameScene)。

override func didMoveToView(view: SKView)

因为我们在继承自 SKScene 类的 GameScene 类中覆盖了这个方法,所以我们实际上是在说:

“不要使用 SKScene didMoveToView() 使用此 GameScene 版本的 didMoveToView()”(因为 self 指的是 GameScene 类)。

So the function "didBeginContact()" is a delegate? and contactDelegate always has to be the class that's going to implement the "didBeginContact()" function (or any other function from the delegate protocol)?

我假设 didBeginContact() 方法调用设置为 contactDelegate 属性的方法。

Java 没有委托(delegate)。委托(delegate)就像一个变量,除了它存储一个方法。您可以使用该变量然后调用该方法。 (如果你知道一些 C,它是一个指向函数的指针)

This帮助我在第一次遇到委托(delegate)时理解委托(delegate)。

关于Swift委托(delegate)(contactDelegate)解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29178856/

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