             return
         }
         
-        reachability?.whenReachable = { [unowned self] reachability in
-            guard self.automaticallyRetryWhenReachable == true else {
+        reachability?.whenReachable = { [weak self] reachability in
+            guard self?.automaticallyRetryWhenReachable == true else {
                 return
             }
             
-            self.retryIfRetryable()
+            self?.retryIfRetryable()
         }
         
         do {

    /// If failed earlier, the retryAction will be triggered when reachability changed to reachable
    public var automaticallyRetryWhenReachable:Bool = true
    
    // Internal properties
    internal var state:RequestState = .Possible
    

        initOnForegroundObserver()
        initReachabilityMonitoring()
        
        debugLog("Init DataRequestView")
    }
    
    deinit {
        NSNotificationCenter.defaultCenter().removeObserver(self)
        debugLog("Deinit DataRequestView")
    }
    
    // MARK: Public Methods
