public static AVAudioRecorder Create(NSUrl url, AVAudioFormat format, out NSError error)
        {
            if (format == null)
            {
                throw new ArgumentNullException(nameof(format));
            }
            error = null;
            try {
                AVAudioRecorder r = new AVAudioRecorder(url, format, out error);
                if (r.Handle == IntPtr.Zero)
                {
                    return(null);
                }

                return(r);
            } catch {
                return(null);
            }
        }
 AVAudioRecorder(NSUrl url, AVAudioFormat format, out NSError error)
 {
     // We use this method because it allows us to out NSError but, as a side effect, it is possible for the handle to be null and we will need to check this manually (on the Create method).
     Handle = InitWithUrl(url, format, out error);
 }