我有模型,並在此模型中包含一個函數SUM 1 + 1 爲什麼我必須使此功能非靜態?Swift中靜態函數和非靜態之間有什麼區別?
區別是唯一可實例化的類嗎?
調用靜態函數在控制器
Model.sumFunction()
調用非靜態函數在控制器
let model = Model()
model.sumFunction
什麼是真正的區別?
我有模型,並在此模型中包含一個函數SUM 1 + 1 爲什麼我必須使此功能非靜態?Swift中靜態函數和非靜態之間有什麼區別?
區別是唯一可實例化的類嗎?
調用靜態函數在控制器
Model.sumFunction()
調用非靜態函數在控制器
let model = Model()
model.sumFunction
什麼是真正的區別?
區別在於,您的型號類的可以覆蓋non static
函數,無論是class
還是instance
。但無法覆蓋static
函數。
而這背後的原因是static
得到一次內存分配,並保留在內存中,直到類仍在內存中!
什麼是使用每種類型函數的好習慣? –
取決於需要。通常我們不使用靜態函數。如果我們需要不需要分配內存的東西,那麼無論什麼原因,我們都應該使用靜態。例如,我們通常在'cellforrowatindexpath'方法中聲明'靜態標識符',因爲becoz標識符總是相同的,並且這個方法調用太多時間,所以使它靜態更好! – Lion
謝謝!但是如果我在靜態課堂上做所有事情,未來會有什麼問題? –
http://stackoverflow.com/questions/29636633/static-vs-class-functions-variables-in-swift-classes – boidkan