2016-09-16 85 views
-1

我有模型,并在此模型中包含一个函数SUM 1 + 1 为什么我必须使此功能非静态?Swift中静态函数和非静态之间有什么区别?

区别是唯一可实例化的类吗?

调用静态函数在控制器

Model.sumFunction() 

调用非静态函数在控制器

let model = Model() 
model.sumFunction 

什么是真正的区别?

+4

http://stackoverflow.com/questions/29636633/static-vs-class-functions-variables-in-swift-classes – boidkan

回答

1

区别在于,您的型号类的​​可以覆盖non static函数,无论是class还是instance。但​​无法覆盖static函数。

而这背后的原因是static得到一次内存分配,并保留在内存中,直到类仍在内存中!

+0

什么是使用每种类型函数的好习惯? –

+0

取决于需要。通常我们不使用静态函数。如果我们需要不需要分配内存的东西,那么无论什么原因,我们都应该使用静态。例如,我们通常在'cellforrowatindexpath'方法中声明'静态标识符',因为becoz标识符总是相同的,并且这个方法调用太多时间,所以使它静态更好! – Lion

+0

谢谢!但是如果我在静态课堂上做所有事情,未来会有什么问题? –

相关问题