我需要在我的应用程序中经常显示一个活动指示器,所以我写了一个这样的类。 进口基金会
class ActivityIndicator
{
static func startActivityIndicator(mainView:UIView)
{
let activityIndicator = UIActivityIndicatorView()
activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.WhiteLarge
activityIndicator.color = UIColor.grayColor()
activityIndicator.center = mainView.center
activityIndicator.startAnimating()
mainView.addSubview(activityIndicator)
}
}
我已经制作了" startActivityIndicator"函数static只是因为它看起来干净实现。我只是想知道如果我们在应用程序中加载大量静态函数,是否会对性能或内存有任何影响。 任何人都可以光明吗?
答案 0 :(得分:1)
在一个实例中,静态函数与实例函数的不同之处仅在于它如何获取其隐式参数:实例函数为self
采用一个隐式参数,而静态函数不为任何事物采用隐式参数。
就函数的代码而言,对于静态或非静态函数没有任何惩罚。性能也是如此:静态函数是可执行代码的最简单的轻量级“包”;打电话给他们不会产生任何额外费用。
但是,您的特定实现可能会受益于将activityIndicator
存储在变量中,以避免在每次静态调用中重新创建它。此外,一旦活动结束,这将使您更容易从superview中删除活动指示符。如果您想使用单个activityIndicator
,则可以将函数保持为静态,并为activityIndicator
添加类变量。否则,您应该创建ActivityIndicator
类的多个实例,每个实例都有自己的activityIndicator
实例变量。在这种情况下,startActivityIndicator
也应该成为实例方法。
答案 1 :(得分:0)
令人惊讶的是,就性能而言,使用静态方法会更好,因为您不必创建任何类的实例来调用它们。
因此,如果你想从100个不同的地方调用它,对于普通的函数,你将使用内存创建100个类的实例,而对于静态,你不会创建任何实例,因此大大减少了内存使用时间。
P.S。:数字100只是为了显示差异的强度。