【问题标题】:is it retain cycle in objective of the block function? [duplicate]它是否在块功能的目标中保留循环? [复制]
【发布时间】:2013-06-17 03:22:19
【问题描述】:
[UIView animateWithDuration:0.2
                          delay:0.0f
                        options:UIViewAnimationOptionCurveEaseIn
                     animations:^{
                         self.imgViewEnterFrame.alpha = 1.0 ;
                         self.imgViewOutofFrame.alpha = 0.0;
                         self.imgViewEnterFrame.frame = self.rectEnterGoodFrame;
                     }
                     completion:nil];

【问题讨论】:

    标签: objective-c memory-management block


    【解决方案1】:

    这不是保留周期。当您使用重复计时器或在类块属性/变量中引用self 或类似的东西时,您会获得保留周期。在这段代码 sn-p 中,这些似乎都不是问题。

    这是一个理论问题,还是您有保留周期的证据(即您的控制器在被解除时没有被释放)?

    【讨论】:

    • 这是错误的。时间长短与是否有循环无关。这里没有“循环”。
    • @newacct 我并不是说时间的长短与周期与否有关。我试图说这不是一个循环。我想说的是,在某些情况下(例如dispatch_async),该对象将在一个块的持续时间内保留。但显然我没有说得那么好(事实上,这不适用于动画,无论如何),所以我只是从我的答案中删除了它以避免混淆。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-03
    • 1970-01-01
    • 1970-01-01
    • 2015-02-04
    • 2011-05-20
    • 1970-01-01
    相关资源
    最近更新 更多