2017-02-10 22 views
0

是否有可能有一個強制執行靜態方法而不是類方法的Swift協議?反之亦然?是否有可能實施靜態方法而不是類方法的Swift協議,反之亦然?

例如類FUNC或最終類FUNC不允許即使該協議被設定爲一類協議:

protocol MyProtocol: class { 
    final class func dummyClassMethod() 
} 

或者在這種情況下,一類被允許創建靜態方法或符合類方法時這樣的:

protocol MyProtocol: class { 
    static func dummyClassMethod() 
} 

回答

1

你不能,因爲蘋果的文檔說只明確以static用於此用途:

要聲明在協議 聲明一個classstatic方法要求,標記與static聲明 改性劑方法聲明。

來源:Protocol Method Declaration


當你實現了的static方法在class,則在您的實現使用classstatic沒有區別。

protocol ProtocolForClasses: class { 
    static func method() 
} 

class ClassOne: ProtocolForClasses { 
    class func method() { 

    } 
} 

class ClassTwo: ProtocolForClasses { 
    static func method() { 

    } 
} 
相關問題