我对委托的含义进行了很多研究,但不知怎样,我的理解并不适合这种解释。这是来自教程:
physicsWorld.contactDelegate = self
这是他的解释:"这将物理世界设置为没有引力,将场景设置为当两个物理机构发生碰撞时通知的代表。&#34 ;
我认为委托只是一个使用协议的类。有人对此有不同的解释吗?究竟是什么线呢?谢谢。 (忽略重力部分,还有另一行代码)
答案 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帮助我理解了代表们。