Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I'm trying to deal with an app in Swift and I'm facing the following error using arrays:

fatal error: Array index out of range

This appears when apps assign a value to the array at index 0:

class DrawScene: SKScene {

    init(size: CGSize) {
        super.init(size: size)
    }

    var line = SKShapeNode()
    var path = CGPathCreateMutable()
    var touch: UITouch!
    var pts = [CGPoint]()

    override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
        /* Called when a touch begins */
        touch = touches.anyObject() as UITouch!
        self.pts[0] = touch.locationInNode(self)  <-- Error appears here
        drawLine()
    }

Some ideas? (I'm using xcode 6 Beta 4)

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
933 views
Welcome To Ask or Share your Answers For Others

1 Answer

Your array is empty at first.

if self.pts.isEmpty {
    self.pts.append(touch.locationInNode(self))
}
else {
    self.pts[0] = touch.locationInNode(self)
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share

548k questions

547k answers

4 comments

86.3k users

...