Xamarin.Mac SDK API diff: 6.20.2 vs 6.22.1

Xamarin.Mac.dll

Namespace AVFoundation

Type Changed: AVFoundation.AVAudioSourceNode

Obsoleted constructors:

 [Obsolete ("Use 'AVAudioSourceNode (AVAudioSourceNodeRenderHandler2)' instead.")]
 public AVAudioSourceNode (AVAudioSourceNodeRenderHandler renderHandler);
 [Obsolete ("Use 'AVAudioSourceNode (AVAudioFormat, AVAudioSourceNodeRenderHandler2)' instead.")]
 public AVAudioSourceNode (AVAudioFormat format, AVAudioSourceNodeRenderHandler renderHandler);

Added constructors:

public AVAudioSourceNode (AVAudioSourceNodeRenderHandler2 renderHandler);
public AVAudioSourceNode (AVAudioFormat format, AVAudioSourceNodeRenderHandler2 renderHandler);

Type Changed: AVFoundation.AVAudioSourceNodeRenderHandler

Modified methods:

-public virtual System.IAsyncResult BeginInvoke (bool isSilence, AudioToolbox.AudioTimeStamp timestamp, uint frameCunt, ref AudioToolbox.AudioBuffers outputData, System.AsyncCallback callback, object object)
+public virtual System.IAsyncResult BeginInvoke (bool isSilence, AudioToolbox.AudioTimeStamp timestamp, uint frameCount, ref AudioToolbox.AudioBuffers outputData, System.AsyncCallback callback, object object)
-public virtual int Invoke (bool isSilence, AudioToolbox.AudioTimeStamp timestamp, uint frameCunt, ref AudioToolbox.AudioBuffers outputData)
+public virtual int Invoke (bool isSilence, AudioToolbox.AudioTimeStamp timestamp, uint frameCount, ref AudioToolbox.AudioBuffers outputData)

Type Changed: AVFoundation.AVPlayerItemMetadataCollector

Added constructor:

public AVPlayerItemMetadataCollector ();

New Type: AVFoundation.AVAudioSourceNodeRenderHandler2

public sealed delegate AVAudioSourceNodeRenderHandler2 : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public AVAudioSourceNodeRenderHandler2 (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (ref bool isSilence, ref AudioToolbox.AudioTimeStamp timestamp, uint frameCount, ref AudioToolbox.AudioBuffers outputData, System.AsyncCallback callback, object object);
	public virtual int EndInvoke (ref bool isSilence, ref AudioToolbox.AudioTimeStamp timestamp, ref AudioToolbox.AudioBuffers outputData, System.IAsyncResult result);
	public virtual int Invoke (ref bool isSilence, ref AudioToolbox.AudioTimeStamp timestamp, uint frameCount, ref AudioToolbox.AudioBuffers outputData);
}

Namespace AppKit

Type Changed: AppKit.NSLayoutManager

Obsoleted methods:

 [Obsolete ("Always throws 'NotSupportedException' (not a public API).")]
 public virtual void ReplaceTextStorage (NSTextStorage newTextStorage);

Type Changed: AppKit.NSSpeechBoundary

Obsoleted fields:

 [Obsolete ("Use 'Word' instead.")]
 hWord = 1,

Added value:

Word = 1,

Type Changed: AppKit.NSTextView

Obsoleted methods:

 [Obsolete ("Use 'SmartInsert(string, NSRange, out string, out string)' overload instead.")]
 public virtual void SmartInsert (string pasteString, Foundation.NSRange charRangeToReplace, string beforeString, string afterString);

Added method:

public virtual void SmartInsert (string pasteString, Foundation.NSRange charRangeToReplace, out string beforeString, out string afterString);

Namespace AudioUnit

Type Changed: AudioUnit.AudioUnit

Obsoleted methods:

 [Obsolete ("This API has been removed.")]
 public AudioUnitStatus SetLatency (double latency);

Namespace CloudKit

Type Changed: CloudKit.CKContainer

Obsoleted methods:

 [Obsolete ("Always throw a 'NotSupportedException' (not a public API). Use 'DiscoverAllIdentities' instead.")]
 public virtual void DiscoverAllContactUserInfos (System.Action<CKDiscoveredUserInfo[],Foundation.NSError> completionHandler);
 [Obsolete ("Always throw a 'NotSupportedException' (not a public API). Use 'DiscoverAllIdentities' instead.")]
 public virtual System.Threading.Tasks.Task<CKDiscoveredUserInfo[]> DiscoverAllContactUserInfosAsync ();
 [Obsolete ("Always throw a 'NotSupportedException' (not a public API). Use 'DiscoverUserIdentity' instead.")]
 public virtual void DiscoverUserInfo (CKRecordID userRecordId, System.Action<CKDiscoveredUserInfo,Foundation.NSError> completionHandler);
 [Obsolete ("Always throw a 'NotSupportedException' (not a public API). Use 'DiscoverUserIdentityWithEmailAddress' instead.")]
 public virtual void DiscoverUserInfo (string email, System.Action<CKDiscoveredUserInfo,Foundation.NSError> completionHandler);
 [Obsolete ("Always throw a 'NotSupportedException' (not a public API). Use 'DiscoverUserIdentity' instead.")]
 public virtual System.Threading.Tasks.Task<CKDiscoveredUserInfo> DiscoverUserInfoAsync (CKRecordID userRecordId);
 [Obsolete ("Always throw a 'NotSupportedException' (not a public API). Use 'DiscoverUserIdentityWithEmailAddress' instead.")]
 public virtual System.Threading.Tasks.Task<CKDiscoveredUserInfo> DiscoverUserInfoAsync (string email);

Type Changed: CloudKit.CKDiscoverAllContactsOperation

Obsoleted properties:

 [Obsolete ("Empty stub (not a public API).")]
 public virtual System.Action<CKDiscoveredUserInfo[],Foundation.NSError> DiscoverAllContactsHandler { get; set; }

Type Changed: CloudKit.CKDiscoverUserInfosOperation

Obsoleted constructors:

 [Obsolete ("Always throws 'NotSupportedException' (not a public API).")]
 protected CKDiscoverUserInfosOperation (Foundation.NSObjectFlag t);
 [Obsolete ("Always throws 'NotSupportedException' (not a public API).")]
 protected CKDiscoverUserInfosOperation (IntPtr handle);
 [Obsolete ("Always throws 'NotSupportedException' (not a public API).")]
 public CKDiscoverUserInfosOperation (string[] emailAddresses, CKRecordID[] userRecordIDs);

Modified constructors:

-protected CKDiscoverUserInfosOperation (IntPtr handle)
+protected CKDiscoverUserInfosOperation (IntPtr handle)

Obsoleted properties:

 [Obsolete ("Empty stub (not a public API).")]
 public override IntPtr ClassHandle { get; }
 [Obsolete ("Empty stub (not a public API).")]
 public virtual CKDiscoverUserInfosCompletionHandler Completed { get; set; }
 [Obsolete ("Empty stub (not a public API).")]
 public virtual string[] EmailAddresses { get; set; }
 [Obsolete ("Empty stub (not a public API).")]
 public virtual CKRecordID[] UserRecordIds { get; set; }

Type Changed: CloudKit.CKDiscoveredUserInfo

Obsoleted properties:

 [Obsolete ("Empty stub (not public API).")]
 public virtual Contacts.CNContact DisplayContact { get; }

Type Changed: CloudKit.CKQueryNotification

Obsoleted properties:

 [Obsolete ("Empty stub (not public API). Use 'DatabaseScope' instead.")]
 public virtual bool IsPublicDatabase { get; }

Type Changed: CloudKit.CKSubscription

Obsoleted constructors:

 [Obsolete ("Always throws 'NotSupportedException' (not a public API). Use 'CKRecordZoneSubscription' instead.")]
 public CKSubscription (CKRecordZoneID zoneId, CKSubscriptionOptions subscriptionOptions);
 [Obsolete ("Always throws 'NotSupportedException' (not a public API). Use 'CKRecordZoneSubscription' instead.")]
 public CKSubscription (CKRecordZoneID zoneId, string subscriptionId, CKSubscriptionOptions subscriptionOptions);

Obsoleted properties:

 [Obsolete ("Empty stub (not a public API). Use 'CKRecordZoneSubscription' intead.")]
 public virtual CKSubscriptionOptions SubscriptionOptions { get; }

Namespace CoreAnimation

Type Changed: CoreAnimation.CAEmitterBehavior

Obsoleted properties:

 [Obsolete ("Empty stub (not a public API).")]
 public static Foundation.NSString[] BehaviorTypes { get; }

Type Changed: CoreAnimation.CAMetalLayer

Obsoleted methods:

 [Obsolete ("Always throw a 'NotSupportedException' (not a public API).")]
 public virtual ICAMetalDrawable CreateDrawable ();

Namespace CoreBluetooth

Type Changed: CoreBluetooth.CBCentralManager

Obsoleted methods:

 [Obsolete ("Empty stub (not a public API).")]
 public virtual void RetrieveConnectedPeripherals ();
 [Obsolete ("Always throws 'NotSupportedException' (not a public API).")]
 public void RetrievePeripherals (CBUUID peripheralUuid);
 [Obsolete ("Always throws 'NotSupportedException' (not a public API).")]
 public void RetrievePeripherals (CBUUID[] peripheralUuids);

Namespace CoreFoundation

Type Changed: CoreFoundation.NativeObject

Added method:

public IntPtr GetCheckedHandle ();

Namespace CoreMidi

Type Changed: CoreMidi.MidiCISession

Obsoleted properties:

 [Obsolete ("Empty stub (not a public API).")]
 public virtual MidiCIPropertyChangedHandler PropertyChangedCallback { get; set; }

Obsoleted methods:

 [Obsolete ("Always throws 'NotSupportedException' (not a public API).")]
 public virtual void GetProperty (Foundation.NSData inquiry, byte channel, MidiCIPropertyResponseHandler handler);
 [Obsolete ("Always throws 'NotSupportedException' (not a public API).")]
 public virtual void HasProperty (Foundation.NSData inquiry, byte channel, MidiCIPropertyResponseHandler handler);
 [Obsolete ("Always throws 'NotSupportedException' (not a public API).")]
 public virtual void SetProperty (Foundation.NSData inquiry, byte channel, MidiCIPropertyResponseHandler handler);

Namespace Foundation

Type Changed: Foundation.NSString

Added method:

public static string FromHandle (IntPtr handle, bool owns);

Namespace ImageIO

Type Changed: ImageIO.CGImageProperties

Added properties:

public static Foundation.NSString ExifCompositeImage { get; }
public static Foundation.NSString ExifSourceExposureTimesOfCompositeImage { get; }
public static Foundation.NSString ExifSourceImageNumberOfCompositeImage { get; }

New Type: ImageIO.CGImageAnimation

public static class CGImageAnimation {
	// methods
	public static CGImageAnimationStatus AnimateImage (Foundation.NSData data, CGImageAnimationOptions options, CGImageAnimation.CGImageSourceAnimationHandler handler);
	public static CGImageAnimationStatus AnimateImage (Foundation.NSUrl url, CGImageAnimationOptions options, CGImageAnimation.CGImageSourceAnimationHandler handler);

	// inner types
	public sealed delegate CGImageSourceAnimationHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
		// constructors
		public CGImageAnimation.CGImageSourceAnimationHandler (object object, IntPtr method);
		// methods
		public virtual System.IAsyncResult BeginInvoke (nint index, CoreGraphics.CGImage image, out bool stop, System.AsyncCallback callback, object object);
		public virtual void EndInvoke (out bool stop, System.IAsyncResult result);
		public virtual void Invoke (nint index, CoreGraphics.CGImage image, out bool stop);
	}
}

New Type: ImageIO.CGImageAnimationOptions

public class CGImageAnimationOptions : Foundation.DictionaryContainer {
	// constructors
	public CGImageAnimationOptions ();
	public CGImageAnimationOptions (Foundation.NSDictionary dictionary);
	// properties
	public double? DelayTime { get; set; }
	public nuint? LoopCount { get; set; }
	public nuint? StartIndex { get; set; }
}

New Type: ImageIO.CGImageAnimationStatus

[Serializable]
public enum CGImageAnimationStatus {
	AllocationFailure = -22144,
	CorruptInputImage = -22141,
	IncompleteInputImage = -22143,
	Ok = 0,
	ParameterError = -22140,
	UnsupportedFormat = -22142,
}

Namespace MapKit

Type Changed: MapKit.MKLocalSearchCompleter

Added constructor:

public MKLocalSearchCompleter ();

Namespace MetalPerformanceShaders

Type Changed: MetalPerformanceShaders.MPSCnnConvolution

Obsoleted methods:

 [Obsolete ("Always throws 'NotSupportedException' (not a public API).")]
 public virtual void EncodeToCommandBuffer (Metal.IMTLCommandBuffer commandBuffer, MPSImage sourceImage, MPSImage destinationImage, out MPSCnnConvolutionState state);

Type Changed: MetalPerformanceShaders.MPSCnnConvolutionNode

Obsoleted properties:

 [Obsolete ("Empty stub (not a public API).")]
 public virtual MPSCnnConvolutionStateNode ConvolutionState { get; }

Type Changed: MetalPerformanceShaders.MPSCnnConvolutionState

Obsoleted constructors:

 [Obsolete ("Always throws 'NotSupportedException' (not a public API).")]
 protected MPSCnnConvolutionState (Foundation.NSObjectFlag t);
 [Obsolete ("Always throws 'NotSupportedException' (not a public API).")]
 protected MPSCnnConvolutionState (IntPtr handle);

Modified constructors:

-protected MPSCnnConvolutionState (IntPtr handle)
+protected MPSCnnConvolutionState (IntPtr handle)

Obsoleted properties:

 [Obsolete ("Empty stub (not a public API).")]
 public override IntPtr ClassHandle { get; }
 [Obsolete ("Empty stub (not a public API).")]
 public virtual nuint KernelHeight { get; }
 [Obsolete ("Empty stub (not a public API).")]
 public virtual nuint KernelWidth { get; }
 [Obsolete ("Empty stub (not a public API).")]
 public virtual nuint SourceHeight { get; }
 [Obsolete ("Empty stub (not a public API).")]
 public virtual MPSOffset SourceOffset { get; }
 [Obsolete ("Empty stub (not a public API).")]
 public virtual nuint SourceWidth { get; }

Type Changed: MetalPerformanceShaders.MPSCnnConvolutionTranspose

Obsoleted methods:

 [Obsolete ("Always throws 'NotSupportedException' (not a public API).")]
 public virtual MPSImage EncodeToCommandBuffer (Metal.IMTLCommandBuffer commandBuffer, MPSImage sourceImage, MPSCnnConvolutionState convolutionState);

Namespace ObjCRuntime

Type Changed: ObjCRuntime.Constants

Modified fields:

-public const string Version = "6.20.2";
+public const string Version = "6.22.1";

Namespace SystemConfiguration

Type Changed: SystemConfiguration.NetworkReachabilityFlags

Added value:

IsWWAN = 262144,