我是编码的新手,为愚蠢的问题道歉。
遵循在Xcode中使用Swift构建笔记记录的教程。
在类定义中,我一直在使用关键字func myMethod等定义方法。在某一点上,教师决定使用类func myMethod定义一个Class方法(在现有类中)。
你为什么要这样做?
提前感谢您的任何反馈。
答案 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()