From c04d0598ef91a2f6288ad5cc8401f6d21af29e78 Mon Sep 17 00:00:00 2001 From: Boram Han Date: Fri, 12 May 2017 10:08:14 +0900 Subject: [PATCH] Fix crash when image is nil (#10) * Convert `texture` property to optional * Add `init` func default value for image parameter * Set `texture` nil when image is nil --- Sources/Node.swift | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/Sources/Node.swift b/Sources/Node.swift index 26100db..9f26832 100755 --- a/Sources/Node.swift +++ b/Sources/Node.swift @@ -60,8 +60,11 @@ open class Node: SKShapeNode { */ open var image: UIImage? { didSet { - guard let image = image else { return } - texture = SKTexture(image: image) + if let image = image { + texture = SKTexture(image: image) + } else { + texture = nil + } } } @@ -75,7 +78,7 @@ open class Node: SKShapeNode { set { sprite.color = newValue } } - private(set) var texture: SKTexture! + private(set) var texture: SKTexture? = nil /** The selection state of the node. @@ -102,7 +105,7 @@ open class Node: SKShapeNode { - Returns: A new node. */ - public convenience init(text: String?, image: UIImage?, color: UIColor, radius: CGFloat) { + public convenience init(text: String?, image: UIImage? = nil, color: UIColor, radius: CGFloat) { self.init() self.init(circleOfRadius: radius) @@ -137,7 +140,9 @@ open class Node: SKShapeNode { */ open func selectedAnimation() { run(.scale(to: 4/3, duration: 0.2)) - sprite.run(.setTexture(texture)) + if let texture = texture { + sprite.run(.setTexture(texture)) + } } /**