Swift: Impossible de convertir une valeur de type 'UnsafeMutablePointer' à attendre argument de type 'UnsafeMutablePointer'

J'ai un petit Problème avec mon Code après la mise à jour de Swift 3. J'ai eu ce Code avant la conversion:

extension NSData {
  func castToCPointer<T>() -> T {
    let mem = UnsafeMutablePointer<T>.alloc(sizeof(T.Type))
    self.getBytes(mem, length: sizeof(T.Type))
    return mem.move()
  }
}

Et je me suis converti à présent Code et dans la 3e ligne, j'obtiens une Erreur

... Impossible de convertir une valeur de type 'UnsafeMutablePointer' à attendre argument de type 'UnsafeMutablePointer'

extension Data {
  func castToCPointer<T>() -> T{
    let mem = UnsafeMutablePointer<T>.allocate(capacity: MemoryLayout<T.Type>.size)
    self.copyBytes(to: mem, count: MemoryLayout<T.Type>.size)
    //self.copyBytes(to: mem, count: MemoryLayout<T.Type>.size)
    return mem.move()
  }
}

Personne ne sait comment se débarrasser de cette?