SpriteKit didBeginContact调用但不是didEndContact

我有以下代码, didBeginContact(contact:)方法被调用,但不是didEndContact(contact:)

 // FIXME: This is a workaround until class vars are supported let sharedContactHandler = ContactHandler() class ContactHandler: NSObject, SKPhysicsContactDelegate { class var sharedHandler: ContactHandler { get { return sharedContactHandler } } func didBeginContact(contact: SKPhysicsContact) { let bodyA = contact.bodyA let bodyB = contact.bodyB NSLog("Began contact") ... } func didEndContact(contact: SKPhysicsContact) { let bodyA = contact.bodyA let bodyB = contact.bodyB NSLog("Ended contact") ... } ... } 

而在我的场景中,

 physicsWorld.contactDelegate = ContactHandler.sharedHandler 

我四处搜寻,找不到任何理由为什么应该被称为,而不是其他。 我已经确定方法签名是正确的和一切。

当两个物体接触时,我会看到日志中的“开始接触”,但是一旦他们不再接触,“终止接触”就不会出现。

任何想法,我做错了什么?