2016-03-06 36 views
0

我试图写一些类和协议。我只想要一种具有明确定义的功能或协议的协议。Swift 2:在抽象超类中指定所需的变量

protocol ObjectProtocol { 
    var endpoint: String 
} 

class Object { 
    // All subclasses must implement ObjectProtocol 

    func printAPIEndpoint() { print(endpoint) } 
} 

,这样我可以很容易地定义类这样的:

class User: Object, ObjectProtocol { 
    var endpoint = "localhost:3000" 
} 

什么来实现这样的事情的最好方法?

回答

0

的协议扩展了默认的方法实现 可能是你正在寻找:

protocol ObjectProtocol { 
    var endpoint: String { get } 
} 

extension ObjectProtocol { 
    func printAPIEndpoint() { print(endpoint) } 
} 

这定义了默认的方法printAPIEndpoint()所有 类型符合ObjectProtocol,比较 “提供了默认的实现”在"Protocols"在Swift参考中。

实例:

class User: ObjectProtocol { 
    var endpoint = "localhost:3000" 
} 

let user = User() 
user.printAPIEndpoint()