考虑下面的类:
class Downloader {
class func downloadImageWithURL(url:String) -> UIImage! {
let data = NSData(contentsOfURL: NSURL(string: url)!)
return UIImage(data: data!)
}
}
将 downloadImageWithURL
声明为类方法而不是实例方法有什么优点?
最佳答案
如果您想调用此类型方法,请编写
Downloader.downloadImageWithURL(...)
如果是实例方法,则需要先创建一个对象:
let downloader: Downloader = Downloader()
downloader.downloadImageWithURL(...)
在其他语言(例如 C++、Java)中,您会谈论 static vs. non-static functions 。
本身没有优点或缺点,它是一个设计决策,一个非常重要的决策!我现在想到的一条经验法则是:如果不需要维护状态信息,请使用类型方法,否则使用实例方法。
在 Swift Langauge Reference 中了解有关这些方法的更多信息.
1 在我写下这条经验法则的同时,我的脑海中浮现出一些反例。因此,请将此视为一个非常粗略的经验法则,并阅读一些有关面向对象设计的更好的介绍。
关于swift - Swift 中类函数的重要性是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39242642/