По моему опыту, didEndContact & amp; doBeginContact вызываются несколько раз, пока объекты перекрываются. Это также происходит в SceneKit с использованием iOS 9, поэтому я должен предположить, что это предполагаемое поведение.