Я следую учебнику, чтобы плавать в сердцах, таких как Перископ.SKScene сбой приложения при закрытии контроллера вида
Чтобы дать основной намек, я отправляю код ниже
let heartHeight: CGFloat = 18.0
let heartsFile = "heart-bubbles.sks"
class HeartBubblesScene : SKScene {
var emitter: SKEmitterNode?
override func didMoveToView(view: SKView) {
scaleMode = .ResizeFill // make scene's size == view's size
//backgroundColor = UIColor.clearColor()
}
func beginBubbling() {
emitter = SKEmitterNode(fileNamed: heartsFile)
let x = floor(size.width/2.0)
let y = heartHeight
emitter!.position = CGPointMake(x, y)
emitter!.name = "heart-bubbles"
emitter!.targetNode = self
emitter?.numParticlesToEmit = 1
addChild(emitter!)
emitter?.resetSimulation()
}
В моей viewdidload, у меня есть такой код, чтобы представить эту сцену
heartBubblesView.presentScene(heartBubblesScene)
Где heartBubblesView является SKView, который я сделал через Outlet.
Проблема возникает, когда я туда и обратно к этому контроллеру; вдруг он упал и показывает мне ниже логична:
SpriteKit`std :: __ 1 :: __ tree_iterator *, Int> станд :: __ 1 :: __ дерево, станд :: __ 1 :: Распределитель> :: найти: 0x29fd0f4c < +0>: ldr r3, [r0, # 4]! 0x29fd0f50 < +4>: cbz r3, 0x29fd0f82; < +54> 0x29fd0f52 < +6>: ldr.w r12, [r1] 0x29fd0f56 < +10>: мы г9, r0 -> 0x29fd0f58 < +12>: LDR r2, [r3, # 0x10] 0x29fd0f5a < +14>: cmp r2, r12 0x29fd0f5c < +16>: bhs 0x29fd0f66; < +26> 0x29fd0f5e < +18>: LDR г3, [r3, # 0x4] 0x29fd0f60 < + 20>: CMP г3, # 0x0 0x29fd0f62 < + 22>: BNE 0x29fd0f58; < +12> 0x29fd0f64 < +24>: b 0x29fd0f70; < +36> 0x29fd0f66 < +26>: LDR г2, [r3] 0x29fd0f68 < + 28>: мы г9, г3 0x29fd0f6a < +30>: CMP г2, # 0x0 0x29fd0f6c < +32>: мы г3, r2 0x29fd0f6e < +34>: bne 0x29fd0f58; < +12> 0x29fd0f70 < +36>: cmp r9, r0 0x29fd0f72 < +38>: beq 0x29fd0f82; < +54> 0x29fd0f74 < +40>: ldr.w r2, [С9, # 0x10] 0x29fd0f78 < +44>: LDR r1, [r1] 0x29fd0f7a < +46>: CMP r1, r2 0x29fd0f7c < + 48>: it lo 0x29fd0f7e < +50>: movlo r9, r0 0x29fd0f80 < +52>: b 0x29fd0f84; < +56> 0x29fd0f82 < +54>: мы г9, r0 0x29fd0f84 < +56>: мы r0, г9 0x29fd0f86 < +58>: BX Л.Р.
Затем я попытался добавить Deinit выше класс
deinit
{
emitter?.targetNode = nil
emitter!.removeAllChildren()
}
Это не работает.
Теги, которые вы использовали, не имеют отношения к этому вопросу. Проверьте [Что такое теги и как их использовать?] (// stackoverflow.com/help/tagging) – SmokeDispenser