Подсказка сверхновичку
import SpriteKit
import GameplayKit
class GameScene: SKScene {
var starfield: SKEmitterNode!
var player: SKSpriteNode!
override func didMove(to view: SKView){
starfield = SKEmitterNode(fileNamed: "starfield")
starfield.position = CGPoint(x: 0, y: 0 )
starfield.advanceSimulationTime(10)
self.addChild(starfield)
starfield.zPosition = -1
}
override func update(_ currentTime: TimeInterval) {
// Called before each frame is rendered
}
}
выдает ошибку: Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value
прошу разъяснить почему Xcode не компилирует данные строки.
Ответы (1 шт):
Автор решения: Andrew
→ Ссылка
судя по ошибке, он компилирует и дохнет во время когда программа уже запущена. Ошибка буквально означает "у переменной нету значения, но ты пытаешся его достать".
Использование знака восклицания игнорирует что это нулейбл и обращается как к обычной переменной которая не может быть пустой. Поэтому ошибка и выдается.
что бы избежать такого есть 2 способа на проверку на нил.
guard let starfield = starfield else { return }
/// здесь starfield наверняка не нил
if let starfield = starfield {
/// здесь starfield наверняка не нил
}