Swift SpriteKit edgeLoopFromRect Issue

O código a seguir reconhece obordas inferior e superior da cena e a bola quica como esperado. No entanto, obordas esquerda e direita da cena são violados o tempo todo. A bola sai da tela e depois retorna, se for aplicada força suficiente. É como se as bordas da cena estivessem além das bordas da janela do simulador de iphone.

import SpriteKit

class GameScene: SKScene {
    override func didMoveToView(view: SKView){
        self.physicsBody = SKPhysicsBody(edgeLoopFromRect: self.frame)
        backgroundColor = UIColor.cyanColor()
        var ball = SKSpriteNode(imageNamed: "ball")
        ball.position = CGPoint(x: self.size.width/2, y: self.size.height/2)
        self.addChild(ball)
        ball.physicsBody = SKPhysicsBody(circleOfRadius: ball.frame.size.height/2)
        let push = CGVectorMake(10, 10)
        ball.physicsBody.applyImpulse(push)

    }
}

Eu acho que tem algo a ver com o arquivo .sks, pois as dimensões são definidas lá e, se eu mudar essas dimensões, ele reflete no jogo. Alguém sabe como fazer isso para que esta linha de código tenha precedência sobre as dimensões do arquivo .sks? Dessa forma, será dinâmico e poderá funcionar em diferentes dispositivos.

self.physicsBody = SKPhysicsBody(edgeLoopFromRect: self.frame)

Encontrei a mesma pergunta aqui, mas nunca fui respondida:Problema de reconhecimento de borda corporal

Além disso, sou novo no desenvolvimento de aplicativos iOS e rápido, então me perdoe se a resposta for óbvia e eu perdi.

questionAnswers(1)

yourAnswerToTheQuestion