【发布时间】:2026-02-03 02:10:01
【问题描述】:
假设有一些东西我想确保在它已经执行时永远不会被调用。
以UIScrollView 为例,每次发生任何缩放时都会调用scrollViewDidScroll: 方法。如果我想在第一次调用 [UIView animateWithDuration...] 时使用它,但不允许后续调用“覆盖”已经播放的动画怎么办?
dispatch_once 会完美运行,如果不是因为它只允许它在每次程序执行时运行一次,当我需要它运行多次时,而不是同时覆盖另一个。
我将如何阻止后续调用将事情搞砸?
【问题讨论】:
-
用一个标志来检查函数/块是否已经在运行怎么样?
标签: ios objective-c cocoa-touch uiview uiscrollview