2016-05-16 8 views
-2

Genau wieEigenschaften des Protokolls in Verlängerung können nicht verwendet werden, aber warum

protocol someProtocol { 
    var p1:string 
} 

extension someProtocol { 
    func configP1(value:string){ 
    self.p1 = value //error 
    } 
} 

In der Verlängerung des Protokolls, wie die Eigenschaft zu verwenden, die in Protokoll definieren

ich weiß, es func configP1 (Wert mutiert: string) {} benutze mutieren vor dem func das ist ok

+0

swift kann nicht unterstützen? – swiftmaster

+0

bist du sicher, dass selbst die ersten zwei Zeilen deines "code" kompilieren? – luk2302

+0

ich weiß, dass es das mutieren vor dem func configP1 das ist in Ordnung – swiftmaster

Antwort

1

Grundsätzlich wird jede Zeile deines "code" nicht kompiliert.

  • string nicht existiert
  • p1 fehlt get/set-Bezeich
  • die Funktion noch markiert ist mutating

Der richtige Code würde ungefähr so ​​aussehen

protocol SomeProtocol { 
    var p1 : String { get set } 
} 

extension SomeProtocol { 
    mutating func configP1(value:String){ 
     self.p1 = value 
    } 
}