相关疑难解决方法(0)

弱引用和无引用引用之间有什么区别?

斯威夫特有:

  • 强引用
  • 弱参考
  • 无主参考文献

无主参考如何与弱参考不同?

什么时候使用无主参考安全?

无主引用是否存在安全风险,如C/C++中的悬空指针

memory-management weak-references automatic-ref-counting dangling-pointer swift

232
推荐指数
4
解决办法
7万
查看次数

弱者自己去哪儿了?

我经常这样做,

let when = DispatchTime.now() + 2.0
DispatchQueue.main.asyncAfter(deadline: when) {
   beep()
}
Run Code Online (Sandbox Code Playgroud)

在一个应用程序中,我们经常这样做

tickle.fresh(){
    msg in
    paint()
}
Run Code Online (Sandbox Code Playgroud)

但如果你做这个

let when = DispatchTime.now() + 2.0
DispatchQueue.main.asyncAfter(deadline: when) {
   tickle.fresh(){
      msg in
      paint()
   }
}
Run Code Online (Sandbox Code Playgroud)

当然,你必须做这个

let when = DispatchTime.now() + 2.0
DispatchQueue.main.asyncAfter(deadline: when) { [weak self] _ in
   tickle.fresh(){
      msg in
      self?.paint()
   }
}
Run Code Online (Sandbox Code Playgroud)

或者,也许这个

let when = DispatchTime.now() + 2.0
DispatchQueue.main.asyncAfter(deadline: when) {
   tickle.fresh(){
      [weak self] msg in
      self?.paint()
   }
}
Run Code Online (Sandbox Code Playgroud)

或许这个

let when = DispatchTime.now() …
Run Code Online (Sandbox Code Playgroud)

weak-references swift

47
推荐指数
1
解决办法
2万
查看次数

是否有必要在UIView.animateWithDuration(...)的闭包中使用[unowned self]?

    UIView.animateWithDuration(1,
        animations: { [unowned self] in
            self.box.center = self.boxTopRightPosition
        },
        completion: { [unowned self] completed in
            self.box.hidden = true
    })
Run Code Online (Sandbox Code Playgroud)

是否有必要避免内存泄漏?

memory closures ios swift

35
推荐指数
5
解决办法
8543
查看次数

我们是否需要在ARC的UIAnimationBlocks中使用__weak self?

我们是否需要在UIAnimation块中使用__weak self,如下所示?如果我们不指定自我弱,是否会产生保留周期问题?

[UIView animateWithDuration:animationDuration 
                      delay:0 
                    options:UIViewAnimationCurveEaseInOut 
                 animations:^{
        [self doSomething];
    } completion:^(BOOL finished) {
        if (finished) {
            [self doSomething];
        }
    }];
Run Code Online (Sandbox Code Playgroud)

我也对以下场景感到困惑.有什么想法吗?请分享您的意见.

[self.navController dismissViewControllerAnimated:animated 
                                       completion:^{
                                                      [self doSomething];
                                                  }];
Run Code Online (Sandbox Code Playgroud)

我们应该在这里使用弱者吗?

ios objective-c-blocks automatic-ref-counting retain-cycle

21
推荐指数
2
解决办法
1万
查看次数