Closed pikeszfish closed 7 years ago
ARC 不需要写 retain/release; block 里用局部变量和 endLayer 是一样的,不过感觉上直接用外面的 layer 更好理解吧, 就是动画完成后重置到初始状态。
是的,不需要retain/release; 我想表述是 不理解的这个局部变量他的引用计数什么时候为0 因为我看着觉得 layer这个局部变量在- (void)animateLoop { ...... } 结束之后就 -1 了 但还被block持有,那是要等到这个complete这个block执行完才再次-1 得到0吗?
block 会持有这个 layer, 在 completion block 销毁后再 -1, 并不是 block 执行完 -1。 block 可能永远不会被执行到, 但是如果 block 被释放,对应它持有的 layer 也会被释放
但是看后面 block, 好像是想用的 endLayer 来做的 . 这里使用了 layer 后面获得的 endLayer 就没意义了.
是的。。 这里用 endLayer 也可以。。
v2ex/v2ex-iOS/Additions/SCPullRefresh/SCAnimationView.m
这里面的block为什么引用了一个局部变量...? 而不是 endLayer ? 初学iOS,不太理解这里的行为... 也不知道这里的retain release是在哪里做的?