title: Cannot invoke initializer for type 'UnsafeMutablePointer'
body: <p>I'm trying to update Reachability.swift to swift 3.0 and I'm having trouble passing the Reachability instance to the call back function.</p>
  
  <p>Here is my snippet:
  * please note self = Reachability class</p>
  
  <pre><code>var context = SCNetworkReachabilityContext(version: 0, info: nil, retain: nil, release: nil, copyDescription: nil)
  
  context.info = UnsafeMutablePointer(Unmanaged.passUnretained(self).toOpaque())
  </code></pre>
  
  <p>Where the compiler throws an error saying:</p>
  
  <blockquote>
    <p>Cannot invoke initializer for type 'UnsafeMutablePointer&lt;_>' with an
    argument list of type '(UnsafeMutableRawPointer)'</p>
    
    <p>Pointer conversion restricted: use '.assumingMemoryBound(to:)' or
    '.bindMemory(to:capacity:)' to view memory as a type.</p>
    
    <p>Overloads for 'UnsafeMutablePointer&lt;_>' exist with these partially
    matching parameter lists: (RawPointer), (OpaquePointer),
    (OpaquePointer?), (UnsafeMutablePointer),
    (UnsafeMutablePointer?)</p>
  </blockquote>
  
  <p>What I understand I need to convert self which is of type <code>open class Reachability: NSObject</code> to an UnsafeMutablPointer but Im not sure how to proceed.</p>