【发布时间】:2021-12-31 05:17:39
【问题描述】:
我想为视图控制器使用协议只是为了显示和隐藏加载器。在这部分我是成功的。但是如果加载器函数已经显示加载器,我想限制它的执行。
我为 API 请求调用 showLoader 函数。而且我不想隐藏加载程序,直到所有请求都得到响应。如果我将计数变量用作静态变量,我可以实现这一点吗?或者有没有其他方法可以在没有计数的情况下实现这一目标?甚至可能与否,请告知。
protocol Loader where Self: UIViewController {
func showLoader()
func hideLoader()
}
extension Loader {
func showLoader() {
if count == 0 {
print("Show Loading")
}
count += 1
}
func hideLoader() {
count -= 1
if count < 1 {
count = 0
print("Hide Loading")
}
}
}
【问题讨论】:
-
问题是什么?在哪里声明
count? -
让
count成为协议的一部分? -
我为您的问题编辑了更多内容。 @jnpdx
-
“将 count 变量用作静态变量”——这真的是您想要的吗?或者,您只是想知道如何像@JoakimDanielson 建议的那样制作协议的可变部分?
-
I would like to use the count variable as static看起来像XY Problem。似乎您只需要一个计数器,它会根据showLoader/hideLoader调用增加和减少,并根据计数器值显示/隐藏加载视图。尚不清楚为什么您需要一个协议,您能否向我们展示一些代码示例,说明您打算如何使用它,假设它有效?