【问题标题】:Get values of variables defined by protocol from any VC从任何 VC 获取协议定义的变量值
【发布时间】:2016-09-30 14:44:34
【问题描述】:

协议(我的协议):-

 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'

我该怎么做? 任何帮助表示赞赏。

【问题讨论】:

    标签: ios swift2 swift-protocols swift-extensions


    【解决方案1】:

    您需要做的就是在您的扩展类中编写另一行代码。我只是在最后测试了它,它对我有用。这是我写的代码 -

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

    【讨论】:

    • 谢谢。 @AKMSalehSultan
    【解决方案2】:

    根据您的示例,您需要更改扩展定义

    extension UIViewController
    

    作为

    extension myVC
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-10
      • 1970-01-01
      • 2021-01-16
      • 2013-09-01
      • 2017-08-13
      • 2021-01-14
      • 2012-02-13
      相关资源
      最近更新 更多