2015-12-15 23 views
6

Hãy nói rằng chúng tôi có một giao thức Swift:Reading var tĩnh từ phần mở rộng giao thức phương pháp dụ

protocol SomeProtocol: class { 
    static var someString: String { get } 
} 

Có cách nào để truy cập someString từ một phương pháp dụ mở rộng, như vậy?

extension SomeProtocol { 
    public func doSomething() -> String { 
     return "I'm a \(someString)" 
    } 
} 

tôi nhận được một lỗi biên dịch:

Static member 'someString' cannot be used on instance of type 'Self'

Có cách nào để thực hiện điều này?

Trả lời

6

Bạn cần phải tham khảo someString với Self (lưu ý các chữ hoa S):

extension SomeProtocol { 
    public func doSomething() -> String { 
     return "I'm a \(Self.someString)" 
    } 
} 
Các vấn đề liên quan