2016-09-30 3 views
1

(myProtocol): -Obtenir les valeurs des variables définies par le protocole de tout protocole VC

protocol myProtocol { 
     var type:String { get set } 
     var sub:String { get } 
     var msg:String? { get set } 
    } 

Classe (myVC): -

class myVC: UIViewController, myProtocol { 
    //Protocol Declarations 
    var sub = myTypes.type.rawValue 
    var type = myTypes.type.getType() 
    var msg :String? 

.... } 

Extension: -

extension UIViewController 
{ 
func getData() { 
     if self is myProtocol { 
     let msg = self.msg 

     } } 
} 

Obtenir erreur à 'self.msg' disant Value of type UIViewController has no member 'sub'

Comment je m'en occupe? Toute aide est appréciée.

Répondre

1

Tout ce que vous devez faire est d'écrire une autre ligne de code dans votre classe d'extension. Je l'ai juste testé dans ma fin et ça a marché pour moi. Voici le code que j'ai écrit -

extension UIViewController 
 
{ 
 
    func getData() { 
 
     if self is myProtocol { 
 
      let x = self as! myProtocol 
 
      let msg = x.msg 
 
      print(x.msg) 
 
     } 
 
    } 
 
}

+0

Merci. @AKMSalehSultan – MShah

0

Selon votre exemple, vous devez changer votre définition d'extension

extension UIViewController 

comme

extension myVC