Swift:class func ....为什么在类中创建方法时使用this而不是func?

时间:2015-07-21 09:57:39

标签: swift class definition func

我是编码的新手,为愚蠢的问题道歉。

遵循在Xcode中使用Swift构建笔记记录的教程。

在类定义中,我一直在使用关键字func myMethod等定义方法。在某一点上,教师决定使用类func myMethod定义一个Class方法(在现有类中)。

你为什么要这样做?

提前感谢您的任何反馈。

4 个答案:

答案 0 :(得分:1)

通过定义类方法,意味着您不需要该类的实例来使用该方法。所以而不是:

var myInstance: MyClass = MyClass()
myInstance.myMethod()

您可以简单地使用:

MyClass.myMethod()

答案 1 :(得分:0)

这是斯威夫特对static methods

的看法
  

静态方法与所有类(或没有实例)的实例相关,而不是与任何特定实例相关。

其中一个例子是UIView中的动画功能,或MFMailComposeViewController中的canSendMail功能。

答案 2 :(得分:0)

一个答案是命名空间。如果函数仅与某个类相关,则无需全局声明该函数。

答案 3 :(得分:0)

静态(类)函数是可调用的,无需可用类的实例;可以在不必实例化对象的情况下调用它。

这对于封装(避免将函数放在全局命名空间中)或适用于给定类的所有对象的操作(例如跟踪当前实例化的对象总数)非常有用。

静态函数可用于定义相关实用程序函数的名称空间集合:

aDate = Utils.getDate()
aTime = Utils.getTime()

另一个常见的用途是singleton pattern,其中静态函数用于提供对仅限实例化一次的对象的访问:

obj = MySingleton.getInstance()
obj.whatever()