protocol NoteProtocol {
    var body: NSString? { get set }
    var createdAt: NSDate? { get set }
    var entityId: NSString? { get set }
    var modifiedAt: NSDate? { get set }
    var title: NSString? { get set }

    // class methods
    class func insertNewNoteInManagedObjectContext(managedObjectContext: NSManagedObjectContext!) -> NoteProtocol
    class func noteFromNoteEntity(noteEntity: NSManagedObject) -> NoteProtocol

    // instance methods
    func update(#title: String, body: String)
    func deleteInManagedObjectContext(managedObjectContext: NSManagedObjectContext!)
}

你好
这是我在 GitHub 上找到的一段代码。在这个协议(protocol)中,类方法和实例方法的主要区别是什么?它们是如何定义的?
谁能帮我?

最佳答案

来自 the documentation 的一些文字:

实例方法



IE。类的实例必须调用此方法。例子 :

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

类方法



它们在其他语言中被称为静态方法。要使用它们,我会这样做:
var b=classAdoptingNoteProtocol.noteFromNoteEntity(...)

这将返回一个采用 NoteProtocol 的类的实例。 IE。您不必创建类的实例来使用它们。

10-07 19:09
查看更多