快速协议扩展中的计算变量

RFG*_*RFG 5 xcode ios afnetworking swift swift-protocols

刚开始在面向协议的协议编程之后迅速工作,我面临着使用计算变量的问题。

我已经制定了一个协议来检查整个应用程序上的Internet可达性(而不是使用已经实现的UIVIewController子类来实现此行为)。但是,当我运行应用程序时,计算变量()的访问集属性崩溃: 在此处输入图片说明

这是代码:

import UIKit

protocol ReachabilityProtocol: class {
    var reachability: NetReach? { get set }

    func startReachability()
    func stopReachability()

    func internetIsAccessible()
    func internetIsNotAccessible()
}


extension ReachabilityProtocol where Self: UIViewController {

    var reachability: NetReach? {
        get { return reachability }
        set { reachability = newValue }
    }

    func startReachability() {

        do {
            reachability = try NetReach.reachabilityForInternetConnection()
        } catch {
            print("Unable to create Reachability")
            return
        }

        NSNotificationCenter.defaultCenter().addObserverForName(ReachabilityChangedNotification, object: reachability, queue: nil, usingBlock: { notification in

        let reachable = notification.object as! NetReach

           if !reachable.isReachable() {
               self.internetIsNotAccessible()
           } else {
               self.internetIsAccessible()
           }
        })

       do {
           try reachability?.startNotifier()
       } catch {
           self.internetIsNotAccessible()
           print("Could not start reachability notifier")
       }
   }

   func stopReachability() {
       reachability!.stopNotifier()
       NSNotificationCenter.defaultCenter().removeObserver(self, name: ReachabilityChangedNotification, object: reachability)
   }
}
Run Code Online (Sandbox Code Playgroud)

知道如何解决这个问题吗?谢谢。