What's the difference between class methods and instance methods in Swift?

前端 未结 2 745
抹茶落季
抹茶落季 2021-01-02 19:13
protocol NoteProtocol {
    var body: NSString? { get set }
    var createdAt: NSDate? { get set }
    var entityId: NSString? { get set }
    var modifiedAt: NSDate         


        
2条回答
  •  渐次进展
    2021-01-02 19:44

    Some text from the documentation:

    Instance Methods

    Instance methods are functions that belong to instances of a particular class, structure, or enumeration. They support the functionality of those instances, either by providing ways to access and modify instance properties, or by providing functionality related to the instance’s purpose.

    ie. An Instance of the class has to call this method. Example :

    var a:classAdoptingNoteProtocol=classAdoptingNoteProtocol()
    a.update()
    

    Class Methods

    Instance methods, as described above, are methods that are called on an instance of a particular type. You can also define methods that are called on the type itself. These kinds of methods are called type methods. You indicate type methods for classes by writing the keyword class before the method’s func keyword, and type methods for structures and enumerations by writing the keyword static before the method’s func keyword.

    They are what are called as Static methods in other languages.To use them, this is what I would do:

    var b=classAdoptingNoteProtocol.noteFromNoteEntity(...)
    

    This will return a instance of a class which adopts NoteProtocol. ie. you don't have to create a instance of the class to use them.

提交回复
热议问题