Xamarin.Mac SDK API diff: 5.8.0 vs 5.10.0

Xamarin.Mac.dll

Namespace AppKit

Type Changed: AppKit.NSApplication

Obsoleted properties:

 [Obsolete ("Remove usage or use 'DangerousWindows' instead.")]
 public virtual NSWindow[] Windows { get; }

Added property:

public virtual Foundation.NSArray<NSWindow> DangerousWindows { get; }

New Type: AppKit.NSFilePromiseProviderDelegate

public abstract class NSFilePromiseProviderDelegate : Foundation.NSObject, INSFilePromiseProviderDelegate, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected NSFilePromiseProviderDelegate ();
	protected NSFilePromiseProviderDelegate (Foundation.NSObjectFlag t);
	protected NSFilePromiseProviderDelegate (IntPtr handle);
	// methods
	public virtual string GetFileNameForDestination (NSFilePromiseProvider filePromiseProvider, string fileType);
	public virtual Foundation.NSOperationQueue GetOperationQueue (NSFilePromiseProvider filePromiseProvider);
	public virtual void WritePromiseToUrl (NSFilePromiseProvider filePromiseProvider, Foundation.NSUrl url, System.Action<Foundation.NSError> completionHandler);
}

Namespace CoreAnimation

Type Changed: CoreAnimation.CAEmitterBehavior

Obsoleted constructors:

 [Obsolete ("Always throw a 'NotSupportedException' (not a public API).")]
 public CAEmitterBehavior (Foundation.NSString type);

Obsoleted methods:

 [Obsolete ("Always throw a 'NotSupportedException' (not a public API).")]
 public static CAEmitterBehavior Create (Foundation.NSString type);

Namespace CoreBluetooth

Type Changed: CoreBluetooth.CBMutableCharacteristic

Obsoleted properties:

 [Obsolete ("The setter is an empty stub (not mutable)")]
 public override CBUUID UUID { get; set; }

Type Changed: CoreBluetooth.CBMutableService

Obsoleted properties:

 [Obsolete ("The setter is an empty stub (not mutable)")]
 public override bool Primary { get; set; }
 [Obsolete ("The setter is an empty stub (not mutable)")]
 public override CBUUID UUID { get; set; }

Namespace CoreFoundation

Type Changed: CoreFoundation.CFString

Modified base type:

-System.Object
+CoreFoundation.NativeObject

Added constructors:

protected CFString ();
protected CFString (IntPtr handle, bool owns);

Removed property:

public virtual IntPtr Handle { get; }

Removed methods:

public virtual void Dispose ();
protected virtual void Dispose (bool disposing);
protected override void ~CFString ();

Type Changed: CoreFoundation.DispatchGroup

Added constructor:

public DispatchGroup ();

Added methods:

public void Notify (DispatchQueue queue, DispatchBlock block);
public bool Wait (System.TimeSpan timeout);

Type Changed: CoreFoundation.DispatchQueue

Added methods:

public void DispatchAfter (DispatchTime when, DispatchBlock block);
public void DispatchAsync (DispatchBlock block);
public void DispatchBarrierAsync (DispatchBlock block);
public void DispatchBarrierSync (DispatchBlock block);
public void DispatchSync (DispatchBlock block);

New Type: CoreFoundation.CFMutableString

public class CFMutableString : CoreFoundation.CFString, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	protected CFMutableString (IntPtr handle);
	public CFMutableString (CFString theString, nint maxLength);
	protected CFMutableString (IntPtr handle, bool owns);
	public CFMutableString (string string, nint maxLength);
	// methods
	public void Append (string string);
	public bool Transform (CFString transform, bool reverse);
	public bool Transform (CFStringTransform transform, bool reverse);
	public bool Transform (Foundation.NSString transform, bool reverse);
	public bool Transform (string transform, bool reverse);
	public bool Transform (ref CFRange range, CFString transform, bool reverse);
	public bool Transform (ref CFRange range, CFStringTransform transform, bool reverse);
	public bool Transform (ref CFRange range, Foundation.NSString transform, bool reverse);
	public bool Transform (ref CFRange range, string transform, bool reverse);
}

New Type: CoreFoundation.CFStringTransform

[Serializable]
public enum CFStringTransform {
	FullwidthHalfwidth = 2,
	HiraganaKatakana = 5,
	LatinArabic = 8,
	LatinCyrillic = 11,
	LatinGreek = 12,
	LatinHangul = 7,
	LatinHebrew = 9,
	LatinHiragana = 4,
	LatinKatakana = 3,
	LatinThai = 10,
	MandarinLatin = 6,
	StripCombiningMarks = 0,
	StripDiacritics = 15,
	ToLatin = 1,
	ToUnicodeName = 14,
	ToXmlHex = 13,
}

New Type: CoreFoundation.CFStringTransformExtensions

public static class CFStringTransformExtensions {
	// methods
	public static Foundation.NSString GetConstant (this CFStringTransform self);
	public static CFStringTransform GetValue (Foundation.NSString constant);
}

New Type: CoreFoundation.DispatchBlock

public sealed class DispatchBlock : CoreFoundation.NativeObject, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public DispatchBlock (System.Action action, DispatchBlockFlags flags);
	public DispatchBlock (DispatchBlock dispatchBlock, DispatchBlockFlags flags, DispatchQualityOfService qosClass, int relative_priority);
	public DispatchBlock (System.Action action, DispatchBlockFlags flags, DispatchQualityOfService qosClass, int relative_priority);
	// properties
	public bool Cancelled { get; }
	// methods
	public void Cancel ();
	public static DispatchBlock Create (System.Action action, DispatchBlockFlags flags);
	public DispatchBlock Create (DispatchBlockFlags flags, DispatchQualityOfService qosClass, int relative_priority);
	public static DispatchBlock Create (DispatchBlock block, DispatchBlockFlags flags, DispatchQualityOfService qosClass, int relative_priority);
	public static DispatchBlock Create (System.Action action, DispatchBlockFlags flags, DispatchQualityOfService qosClass, int relative_priority);
	public void Invoke ();
	public void Notify (DispatchQueue queue, DispatchBlock notification);
	public void Notify (DispatchQueue queue, System.Action notification);
	protected override void Release ();
	protected override void Retain ();
	public nint TestCancel ();
	public nint Wait (DispatchTime time);
	public nint Wait (System.TimeSpan timeout);
	public static System.Action op_Explicit (DispatchBlock block);
}

New Type: CoreFoundation.DispatchBlockFlags

[Serializable]
[Flags]
public enum DispatchBlockFlags {
	AssignCurrent = 4,
	Barrier = 1,
	Detached = 2,
	EnforceQosClass = 32,
	InheritQosClass = 16,
	NoQosClass = 8,
	None = 0,
}

Namespace CoreMedia

Type Changed: CoreMedia.CMTextMarkupAttributes

Added property:

public float? BaseFontSizePercentageRelativeToVideoHeight { get; set; }

Namespace CoreServices

Type Changed: CoreServices.FSEventStreamCreateFlags

Added values:

MarkSelf = 32,
UseExtendedData = 64,

Type Changed: CoreServices.FSEventStreamEventFlags

Added value:

ItemCloned = 4194304,

Namespace Foundation

Type Changed: Foundation.NSArray

Added methods:

public static NSArray FromNSObjects<T> (T[] items);
public static NSArray FromNSObjects<T> (int count, T[] items);

Type Changed: Foundation.NSString

Added constructor:

public NSString (string value, int start, int length);

Added methods:

public static IntPtr CreateNative (string value, int start, int length);
public static IntPtr CreateNative (string value, int start, int length, bool autorelease);

Type Changed: Foundation.NSUrl

Added property:

public virtual bool IsFileReferenceUrl { get; }

Namespace GameKit

Type Changed: GameKit.GKGameSession

Obsoleted methods:

 [Obsolete ("Empty stub (GKGameSessionEventListenerPrivate category members are not public API).")]
 public static void DidAddPlayer (GKGameSession session, GKCloudPlayer player);
 [Obsolete ("Empty stub (GKGameSessionEventListenerPrivate category members are not public API).")]
 public static void DidChangeConnectionState (GKGameSession session, GKCloudPlayer player, GKConnectionState newState);
 [Obsolete ("Empty stub (GKGameSessionEventListenerPrivate category members are not public API).")]
 public static void DidReceiveData (GKGameSession session, Foundation.NSData data, GKCloudPlayer player);
 [Obsolete ("Empty stub (GKGameSessionEventListenerPrivate category members are not public API).")]
 public static void DidReceiveMessage (GKGameSession session, string message, Foundation.NSData data, GKCloudPlayer player);
 [Obsolete ("Empty stub (GKGameSessionEventListenerPrivate category members are not public API).")]
 public static void DidRemovePlayer (GKGameSession session, GKCloudPlayer player);
 [Obsolete ("Empty stub (GKGameSessionEventListenerPrivate category members are not public API).")]
 public static void DidSaveData (GKGameSession session, GKCloudPlayer player, Foundation.NSData data);

Namespace MetalPerformanceShaders

Type Changed: MetalPerformanceShaders.MPSCnnConvolutionTransposeNode

Obsoleted constructors:

 [Obsolete ("Always throw a 'NotSupportedException' (not a public API).")]
 public MPSCnnConvolutionTransposeNode (MPSNNImageNode sourceNode, MPSCnnConvolutionStateNode convolutionState, IMPSCnnConvolutionDataSource weights);

Obsoleted methods:

 [Obsolete ("Always return null (not a public API).")]
 public static MPSCnnConvolutionTransposeNode Create (MPSNNImageNode sourceNode, MPSCnnConvolutionStateNode convolutionState, IMPSCnnConvolutionDataSource weights);

Namespace ObjCRuntime

Type Changed: ObjCRuntime.Constants

Modified fields:

-public const string Version = "5.8.0";
+public const string Version = "5.10.0";

Type Changed: ObjCRuntime.Runtime

Added field:

public static bool IsARM64CallingConvention;

Namespace PdfKit

Type Changed: PdfKit.PdfBorder

Obsoleted properties:

 [Obsolete ("Empty stub (not a public API).")]
 public virtual nfloat HorizontalCornerRadius { get; set; }
 [Obsolete ("Empty stub (not a public API).")]
 public virtual nfloat VerticalCornerRadius { get; set; }

Namespace Vision

Type Changed: Vision.VNRequest

Obsoleted properties:

 [Obsolete ("Empty stub (not a public API).")]
 public virtual Metal.IMTLDevice PreferredMetalContext { get; set; }