SCNAction阻止内存释放

时间:2016-03-10 17:15:17

标签: ios swift

我已经通过以下方式获得了在SCNAction块中引用self的代码:

spawnAction = SCNAction.runBlock({ node in
    dispatch_async(dispatch_get_main_queue(),{
         [weak self] in
         if let actualSelf = self {
             actualSelf.spawnDelegate?.spawnRiverCrosser(node.position)
          }
      })
  })

当我将此类设置为nil时,我的deinit方法不会被调用。如果我注释掉这行

,就会调用它
actualSelf.spawnDelegate?.spawnRiverCrosser(node.position)

我读到了保留周期,我确实理解如果我有任何强引用,这个方法不会被调用,但是尽管有很多StackOverflow答案表明,通过使用闭包[弱自我]问题应该得到解决。我不明白为什么它不起作用。

0 个答案:

没有答案