假设我们覆盖scrollViewDidScroll
方法和第一次滚动only, 我们想doSomething()
实现这一点的一个简单方法是拥有一个实例级布尔变量并切换/检查它。
func scrollViewDidScroll(scrollView: UIScrollView!) {
if(!scrolled) {
scrolled = true;
doSomething();
}
}
我想要一个更好的解决方案,不引入布尔变量scrolled
。类似的东西dispatch_once
但针对对象的生命周期而不是整个过程。
这种模式有名字吗?
与dispatch_once类似,但针对对象的生命周期而不是整个过程
很遗憾,dispatch_once
在实例级别不安全。在 Objective-C 中使用这个的人这样做是错误的。因此dispatch_once
在 Swift 中不可用。
Your if !scrolled
模式实际上是正确的实现(除了使用括号、分号和其他非 Swifty 的东西)。它被称为一个flag.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)