2016-09-30 17 views
1

プロトコル(myProtocol)からプロトコルによって定義された変数の値を取得します -任意のVC

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

クラス(myVC): -

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

.... } 

拡張子: -

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

     } } 
} 

取得「self.msg」というエラーが表示されるValue of type UIViewController has no member 'sub'

どうすればいいですか? 何か助けていただければ幸いです。

答えて

1

として

extension UIViewController 

を変更する必要があります。私はちょうど私の終わりにそれをテストし、それは私のために働いた。

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

+0

おかげで - ここで私が書いたコードです。 @AKMSalehSultan – MShah

0

あなたの例によると、あなたがする必要があるすべてはあなたの拡張クラスでコードの別の行を記述しているあなたの拡張定義

extension myVC