swift - Swift 中类函数的重要性是什么?

标签 swift static-methods

考虑下面的类:

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/

相关文章:

ios - 如何快速修复此 try/guard 错误

swift - 无法输入 uitextfield,因为 - [一般] 与守护程序的连接无效

ios - UICollectionViewUpdateItem 可以用来更新单个标签吗?

ios - Firebase 未从 Facebook 捕获电子邮件/电话

java - 播放不同类(class)的音频?

java - 何时使用静态方法

ios - 如何在swift中重载赋值运算符

javascript - es6 类将 this 传递给静态类函数

java - 将参数设置为持久值

c++ - 使用静态方法初始化 const 类字段是好事还是坏事?