Browse Source

Merge pull request #214 from bm-w/master

Immutable & non-optional SCNetworkReachability ref
Ashley Mills 8 years ago
parent
commit
2b76a065ef
1 changed files with 5 additions and 19 deletions
  1. 5 19
      Reachability/Reachability.swift

+ 5 - 19
Reachability/Reachability.swift

@@ -101,7 +101,7 @@ public class Reachability {
     }()
     
     fileprivate var notifierRunning = false
-    fileprivate var reachabilityRef: SCNetworkReachability?
+    fileprivate let reachabilityRef: SCNetworkReachability
     
     fileprivate let reachabilitySerialQueue = DispatchQueue(label: "uk.co.ashleymills.reachability")
     
@@ -122,20 +122,14 @@ public class Reachability {
         var zeroAddress = sockaddr()
         zeroAddress.sa_len = UInt8(MemoryLayout<sockaddr>.size)
         zeroAddress.sa_family = sa_family_t(AF_INET)
-        
-        guard let ref: SCNetworkReachability = withUnsafePointer(to: &zeroAddress, {
-            SCNetworkReachabilityCreateWithAddress(nil, UnsafePointer($0))
-        }) else { return nil }
+
+        guard let ref = SCNetworkReachabilityCreateWithAddress(nil, &zeroAddress) else { return nil }
         
         self.init(reachabilityRef: ref)
     }
     
     deinit {
         stopNotifier()
-
-        reachabilityRef = nil
-        whenReachable = nil
-        whenUnreachable = nil
     }
 }
 
@@ -144,7 +138,7 @@ public extension Reachability {
     // MARK: - *** Notifier methods ***
     func startNotifier() throws {
         
-        guard let reachabilityRef = reachabilityRef, !notifierRunning else { return }
+        guard !notifierRunning else { return }
         
         var context = SCNetworkReachabilityContext(version: 0, info: nil, retain: nil, release: nil, copyDescription: nil)
         context.info = UnsafeMutableRawPointer(Unmanaged<Reachability>.passUnretained(self).toOpaque())        
@@ -168,7 +162,6 @@ public extension Reachability {
     
     func stopNotifier() {
         defer { notifierRunning = false }
-        guard let reachabilityRef = reachabilityRef else { return }
         
         SCNetworkReachabilitySetCallback(reachabilityRef, nil, nil)
         SCNetworkReachabilitySetDispatchQueue(reachabilityRef, nil)
@@ -281,15 +274,8 @@ fileprivate extension Reachability {
     }
     
     var reachabilityFlags: SCNetworkReachabilityFlags {
-        
-        guard let reachabilityRef = reachabilityRef else { return SCNetworkReachabilityFlags() }
-        
         var flags = SCNetworkReachabilityFlags()
-        let gotFlags = withUnsafeMutablePointer(to: &flags) {
-            SCNetworkReachabilityGetFlags(reachabilityRef, UnsafeMutablePointer($0))
-        }
-        
-        if gotFlags {
+        if SCNetworkReachabilityGetFlags(reachabilityRef, &flags) {
             return flags
         } else {
             return SCNetworkReachabilityFlags()