Swift Delegate(contactDelegate)解释

时间:2015-03-21 03:18:53

标签: swift delegates

我对委托的含义进行了很多研究,但不知怎样,我的理解并不适合这种解释。这是来自教程:

    physicsWorld.contactDelegate = self

这是他的解释:"这将物理世界设置为没有引力,将场景设置为当两个物理机构发生碰撞时通知的代表。&#34 ;

我认为委托只是一个使用协议的类。有人对此有不同的解释吗?究竟是什么线呢?谢谢。 (忽略重力部分,还有另一行代码)

2 个答案:

答案 0 :(得分:0)

代表协议,有时也称为“委托协议”。包含引用的代码行的类成为委托并获取有问题的协议的消息。 physicsWorld将联系其代表,告知其发生碰撞。如果实现了委托方法(即控制器符合到委托协议),则在通知时可以采取适当的措施。

清除?

答案 1 :(得分:0)

根据PhysicsWorld class的Swift文档:

  

contactDelegate Property

     

当两个物理机构接触时调用的代理人   彼此。

因此,当我们看到这一行时:

physicsWorld.contactDelegate = self

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

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

override func didMoveToView(view: SKView)

因为我们在继承自SKScene类的GameScene类中重写了这个方法,所以我们基本上是这样说的:

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

  

那么函数“didBeginContact()”是一个委托?和contactDelegate总是必须是要实现“didBeginContact()”函数(或委托协议中的任何其他函数)的类?

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

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

当我第一次遇到代表时,

This帮助我理解了代表们。