I am trying to call a function when the internet connection is restored and the updateOnConnection variable is true. Here is my code:
func checkForConnection() {
    let host = "reddit.com"
    var context = SCNetworkReachabilityContext(version: 0, info: nil, retain: nil, release: nil, copyDescription: nil)
    let reachability = SCNetworkReachabilityCreateWithName(nil, host)!
    SCNetworkReachabilitySetCallback(reachability, { (_, flags, _) in
        if flags.rawValue == 0 { //internet is not connected
        } else { //internet became connected
            if self.updateOnConnection {
                self.refreshWallpaper()
            }
        }
    }, &context)
    SCNetworkReachabilityScheduleWithRunLoop(reachability, CFRunLoopGetMain(), kCFRunLoopCommonModes)
}
My problem is that the lines:
        if self.updateOnConnection {
            self.refreshWallpaper()
        }
cause the error: "A C function pointer cannot be formed from a closure that captures context"
I am not sure how to check the state of updateOnConnection and call refreshWallpaper() in the closure that monitors changes in the internet connection. How can I fix this, or is there a totally different workaround I should be using?
 
     
    