stable-api-comparison/watchos-api-diff.md (original) (raw)

title description author ms.author ms.date ms.topic ms.assetid ms.prod
Xamarin.WatchOS SDK API diff: 16.4.0 vs 17.1.0 List of API changes between Xamarin.WatchOS versions 16.4.0 and 17.1.0. spouliot sepoulio 12/3/2023 article 5fd437c7-2e3f-725a-2e63-27cd786dc6d7 xamarin

Xamarin.WatchOS SDK API diff: 16.4.0 vs 17.1.0

Xamarin.WatchOS.dll

Namespace AVFoundation

Type Changed: AVFoundation.AVAudioSession

Obsoleted properties:

[Obsolete ("Use 'AVAudioSessionCategory' enum values instead.")] public static Foundation.NSString CategoryAmbient { get; } [Obsolete ("Use 'AVAudioSessionCategory' enum values instead.")] public static Foundation.NSString CategoryMultiRoute { get; } [Obsolete ("Use 'AVAudioSessionCategory' enum values instead.")] public static Foundation.NSString CategoryPlayAndRecord { get; } [Obsolete ("Use 'AVAudioSessionCategory' enum values instead.")] public static Foundation.NSString CategoryPlayback { get; } [Obsolete ("Use 'AVAudioSessionCategory' enum values instead.")] public static Foundation.NSString CategoryRecord { get; } [Obsolete ("Use 'AVAudioSessionCategory' enum values instead.")] public static Foundation.NSString CategorySoloAmbient { get; } [Obsolete ("Use 'AVAudioSessionMode' enum values instead.")] public static Foundation.NSString ModeDefault { get; } [Obsolete ("Use 'AVAudioSessionMode' enum values instead.")] public static Foundation.NSString ModeGameChat { get; } [Obsolete ("Use 'AVAudioSessionMode' enum values instead.")] public static Foundation.NSString ModeMeasurement { get; } [Obsolete ("Use 'AVAudioSessionMode' enum values instead.")] public static Foundation.NSString ModeMoviePlayback { get; } [Obsolete ("Use 'AVAudioSessionMode' enum values instead.")] public static Foundation.NSString ModeSpokenAudio { get; } [Obsolete ("Use 'AVAudioSessionMode' enum values instead.")] public static Foundation.NSString ModeVideoChat { get; } [Obsolete ("Use 'AVAudioSessionMode' enum values instead.")] public static Foundation.NSString ModeVideoRecording { get; } [Obsolete ("Use 'AVAudioSessionMode' enum values instead.")] public static Foundation.NSString ModeVoiceChat { get; } [Obsolete ("Use 'AVAudioSessionMode' enum values instead.")] public static Foundation.NSString VoicePrompt { get; }

Added methods:

public Foundation.NSError SetActive (bool active, AVAudioSessionSetActiveOptions options); public bool SetCategory (AVAudioSessionCategory category, AVAudioSessionCategoryOptions options, out Foundation.NSError outError); public Foundation.NSError SetCategory (AVAudioSessionCategory category, AVAudioSessionMode mode, AVAudioSessionCategoryOptions options); public Foundation.NSError SetCategory (AVAudioSessionCategory category, string mode, AVAudioSessionCategoryOptions options); public bool SetCategory (AVAudioSessionCategory category, AVAudioSessionMode mode, AVAudioSessionCategoryOptions options, out Foundation.NSError outError); public bool SetCategory (AVAudioSessionCategory category, string mode, AVAudioSessionCategoryOptions options, out Foundation.NSError outError); public bool SetCategory (AVAudioSessionCategory category, AVAudioSessionMode mode, AVAudioSessionRouteSharingPolicy policy, AVAudioSessionCategoryOptions options, out Foundation.NSError outError); public bool SetCategory (AVAudioSessionCategory category, string mode, AVAudioSessionRouteSharingPolicy policy, AVAudioSessionCategoryOptions options, out Foundation.NSError outError); public bool SetMode (AVAudioSessionMode mode, out Foundation.NSError error);

Type Changed: AVFoundation.AVAudioSinkNode

Obsoleted constructors:

[Obsolete ("Use the overload that takes a delegate that does not take a 'ref AudioBuffers' instead. Assigning a value to the 'inputData' parameter in the callback has no effect.")] public AVAudioSinkNode (AVAudioSinkNodeReceiverHandler receiverHandler);

Added constructors:

public AVAudioSinkNode (AVAudioSinkNodeReceiverHandler2 receiverHandler); public AVAudioSinkNode (AVAudioSinkNodeReceiverHandlerRaw receiverHandler);

Type Changed: AVFoundation.AVMetadataObjectTypeExtensions

Added methods:

public static Foundation.NSString[] ToArray (this AVMetadataObjectType value); public static AVMetadataObjectType ToFlags (System.Collections.Generic.IEnumerable<Foundation.NSString> constants);

New Type: AVFoundation.AVAudioSessionCategoryExtensions

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

New Type: AVFoundation.AVAudioSessionMode

[Serializable] public enum AVAudioSessionMode { Default = 0, GameChat = 4, Measurement = 3, MoviePlayback = 5, SpokenAudio = 7, VideoChat = 6, VideoRecording = 2, VoiceChat = 1, VoicePrompt = 8, }

New Type: AVFoundation.AVAudioSessionModeExtensions

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

New Type: AVFoundation.AVAudioSinkNodeReceiverHandler2

public sealed delegate AVAudioSinkNodeReceiverHandler2 : System.MulticastDelegate { // constructors public AVAudioSinkNodeReceiverHandler2 (object object, IntPtr method); // methods public virtual System.IAsyncResult BeginInvoke (AudioToolbox.AudioTimeStamp timestamp, uint frameCount, AudioToolbox.AudioBuffers inputData, System.AsyncCallback callback, object object); public virtual int EndInvoke (System.IAsyncResult result); public virtual int Invoke (AudioToolbox.AudioTimeStamp timestamp, uint frameCount, AudioToolbox.AudioBuffers inputData); }

New Type: AVFoundation.AVAudioSinkNodeReceiverHandlerRaw

public sealed delegate AVAudioSinkNodeReceiverHandlerRaw : System.MulticastDelegate { // constructors public AVAudioSinkNodeReceiverHandlerRaw (object object, IntPtr method); // methods public virtual System.IAsyncResult BeginInvoke (IntPtr timestamp, uint frameCount, IntPtr inputData, System.AsyncCallback callback, object object); public virtual int EndInvoke (System.IAsyncResult result); public virtual int Invoke (IntPtr timestamp, uint frameCount, IntPtr inputData); }

Namespace Accessibility

New Type: Accessibility.AXAnimatedImagesUtilities

public static class AXAnimatedImagesUtilities { // properties public static Foundation.NSString AnimatedImagesEnabledDidChangeNotification { get; } public static bool Enabled { get; }

// inner types
public static class Notifications {
    // methods
    public static Foundation.NSObject ObserveAnimatedImagesEnabledDidChange (System.EventHandler<Foundation.NSNotificationEventArgs> handler);
    public static Foundation.NSObject ObserveAnimatedImagesEnabledDidChange (Foundation.NSObject objectToObserve, System.EventHandler<Foundation.NSNotificationEventArgs> handler);
}

}

New Type: Accessibility.AXCustomContentProvider_Extensions

public static class AXCustomContentProvider_Extensions { // methods public static System.Func<AXCustomContent[]> GetAccessibilityCustomContentHandler (this IAXCustomContentProvider This); public static void SetAccessibilityCustomContentHandler (this IAXCustomContentProvider This, System.Func<AXCustomContent[]> value); }

New Type: Accessibility.AXPrefers

public static class AXPrefers { // properties public static Foundation.NSString HorizontalTextLayoutDidChangeNotification { get; } // methods public static bool HorizontalTextEnabled ();

// inner types
public static class Notifications {
    // methods
    public static Foundation.NSObject ObserveHorizontalTextLayoutDidChange (System.EventHandler<Foundation.NSNotificationEventArgs> handler);
    public static Foundation.NSObject ObserveHorizontalTextLayoutDidChange (Foundation.NSObject objectToObserve, System.EventHandler<Foundation.NSNotificationEventArgs> handler);
}

}

Namespace AudioToolbox

Type Changed: AudioToolbox.AudioChannelLayoutTag

Added values:

Ogg_3_0 = 9830403, Ogg_4_0 = 12124164, Ogg_5_0 = 13893637, Ogg_5_1 = 13959174, Ogg_6_1 = 14024711, Ogg_7_1 = 14090248,

Namespace AuthenticationServices

New Type: AuthenticationServices.ASAuthorizationPublicKeyCredentialAttachment

[Serializable] public enum ASAuthorizationPublicKeyCredentialAttachment { CrossPlatform = 1, Platform = 0, }

New Type: AuthenticationServices.ASAuthorizationWebBrowserPublicKeyCredentialManagerAuthorizationState

[Serializable] public enum ASAuthorizationWebBrowserPublicKeyCredentialManagerAuthorizationState { Authorized = 0, Denied = 1, NotDetermined = 2, }

New Type: AuthenticationServices.ASPublicKeyCredentialClientDataCrossOriginValue

[Serializable] public enum ASPublicKeyCredentialClientDataCrossOriginValue { CrossOrigin = 1, NotSet = 0, SameOriginWithAncestors = 2, }

Namespace CallKit

Type Changed: CallKit.CXErrorCodeIncomingCallError

Added value:

FilteredDuringRestrictedSharingMode = 5,

Type Changed: CallKit.CXSetMutedCallAction

Added constructor:

public CXSetMutedCallAction (Foundation.NSUuid callUuid);

Namespace CloudKit

Type Changed: CloudKit.CKQueryOperation

Added property:

public static nint MaximumResults { get; }

Type Changed: CloudKit.CKRecord

Added properties:

public static Foundation.NSString CreationDateKey { get; } public static Foundation.NSString CreatorUserRecordIdKey { get; } public static Foundation.NSString LastModifiedUserRecordIdKey { get; } public static Foundation.NSString ModificationDateKey { get; } public static Foundation.NSString RecordIdKey { get; }

Type Changed: CloudKit.CKShareMetadata

Obsoleted constructors:

[Obsolete ("Get them from 'CKFetchShareMetadataOperation' or platform-specific scene / app delegate callbacks.")] public CKShareMetadata ();

New Type: CloudKit.CKSyncEngine

public class CKSyncEngine : Foundation.NSObject { // constructors public CKSyncEngine (CKSyncEngineConfiguration configuration); protected CKSyncEngine (Foundation.NSObjectFlag t); protected CKSyncEngine (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKDatabase Database { get; } public virtual CKSyncEngineState State { get; } // methods public virtual void CancelOperations (System.Action completionHandler); public virtual System.Threading.Tasks.Task CancelOperationsAsync (); public virtual void FetchChanges (System.Action<Foundation.NSError> completionHandler); public virtual void FetchChanges (CKSyncEngineFetchChangesOptions options, System.Action<Foundation.NSError> completionHandler); public virtual System.Threading.Tasks.Task FetchChangesAsync (); public virtual System.Threading.Tasks.Task FetchChangesAsync (CKSyncEngineFetchChangesOptions options); public virtual void SendChanges (System.Action<Foundation.NSError> completionHandler); public virtual void SendChanges (CKSyncEngineSendChangesOptions options, System.Action<Foundation.NSError> completionHandler); public virtual System.Threading.Tasks.Task SendChangesAsync (); public virtual System.Threading.Tasks.Task SendChangesAsync (CKSyncEngineSendChangesOptions options); }

New Type: CloudKit.CKSyncEngineAccountChangeEvent

public class CKSyncEngineAccountChangeEvent : CloudKit.CKSyncEngineEvent { // constructors public CKSyncEngineAccountChangeEvent (); protected CKSyncEngineAccountChangeEvent (Foundation.NSObjectFlag t); protected CKSyncEngineAccountChangeEvent (IntPtr handle); // properties public virtual CKSyncEngineAccountChangeType ChangeType { get; } public override IntPtr ClassHandle { get; } public virtual CKRecordID CurrentUser { get; } public virtual CKRecordID PreviousUser { get; } }

New Type: CloudKit.CKSyncEngineAccountChangeType

[Serializable] public enum CKSyncEngineAccountChangeType { SignIn = 0, SignOut = 1, SwitchAccounts = 2, }

New Type: CloudKit.CKSyncEngineConfiguration

public class CKSyncEngineConfiguration : Foundation.NSObject { // constructors protected CKSyncEngineConfiguration (Foundation.NSObjectFlag t); protected CKSyncEngineConfiguration (IntPtr handle); public CKSyncEngineConfiguration (CKDatabase database, CKSyncEngineStateSerialization stateSerialization, ICKSyncEngineDelegate delegate); // properties public virtual bool AutomaticallySync { get; set; } public override IntPtr ClassHandle { get; } public virtual CKDatabase Database { get; set; } public ICKSyncEngineDelegate Delegate { get; set; } public virtual CKSyncEngineStateSerialization StateSerialization { get; set; } public virtual string SubscriptionId { get; set; } public virtual Foundation.NSObject WeakDelegate { get; set; } // methods protected override void Dispose (bool disposing); }

New Type: CloudKit.CKSyncEngineDelegate

public abstract class CKSyncEngineDelegate : Foundation.NSObject, ICKSyncEngineDelegate, ObjCRuntime.INativeObject, System.IDisposable { // constructors protected CKSyncEngineDelegate (); protected CKSyncEngineDelegate (Foundation.NSObjectFlag t); protected CKSyncEngineDelegate (IntPtr handle); // methods public abstract void SyncEngine (CKSyncEngine syncEngine, CKSyncEngineEvent event); public virtual CKSyncEngineFetchChangesOptions SyncEngine (CKSyncEngine syncEngine, CKSyncEngineFetchChangesContext context); public abstract CKSyncEngineRecordZoneChangeBatch SyncEngine (CKSyncEngine syncEngine, CKSyncEngineSendChangesContext context); }

New Type: CloudKit.CKSyncEngineDelegate_Extensions

public static class CKSyncEngineDelegate_Extensions { // methods public static CKSyncEngineFetchChangesOptions SyncEngine (this ICKSyncEngineDelegate This, CKSyncEngine syncEngine, CKSyncEngineFetchChangesContext context); }

New Type: CloudKit.CKSyncEngineDidFetchChangesEvent

public class CKSyncEngineDidFetchChangesEvent : CloudKit.CKSyncEngineEvent { // constructors public CKSyncEngineDidFetchChangesEvent (); protected CKSyncEngineDidFetchChangesEvent (Foundation.NSObjectFlag t); protected CKSyncEngineDidFetchChangesEvent (IntPtr handle); // properties public override IntPtr ClassHandle { get; } }

New Type: CloudKit.CKSyncEngineDidFetchRecordZoneChangesEvent

public class CKSyncEngineDidFetchRecordZoneChangesEvent : CloudKit.CKSyncEngineEvent { // constructors public CKSyncEngineDidFetchRecordZoneChangesEvent (); protected CKSyncEngineDidFetchRecordZoneChangesEvent (Foundation.NSObjectFlag t); protected CKSyncEngineDidFetchRecordZoneChangesEvent (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual Foundation.NSError Error { get; } public virtual CKRecordZoneID ZoneId { get; } }

New Type: CloudKit.CKSyncEngineDidSendChangesEvent

public class CKSyncEngineDidSendChangesEvent : CloudKit.CKSyncEngineEvent { // constructors public CKSyncEngineDidSendChangesEvent (); protected CKSyncEngineDidSendChangesEvent (Foundation.NSObjectFlag t); protected CKSyncEngineDidSendChangesEvent (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKSyncEngineSendChangesContext Context { get; } }

New Type: CloudKit.CKSyncEngineEvent

public class CKSyncEngineEvent : Foundation.NSObject { // constructors protected CKSyncEngineEvent (Foundation.NSObjectFlag t); protected CKSyncEngineEvent (IntPtr handle); // properties public virtual CKSyncEngineAccountChangeEvent AccountChangeEvent { get; } public override IntPtr ClassHandle { get; } public virtual CKSyncEngineDidFetchChangesEvent DidFetchChangesEvent { get; } public virtual CKSyncEngineDidFetchRecordZoneChangesEvent DidFetchRecordZoneChangesEvent { get; } public virtual CKSyncEngineDidSendChangesEvent DidSendChangesEvent { get; } public virtual CKSyncEngineFetchedDatabaseChangesEvent FetchedDatabaseChangesEvent { get; } public virtual CKSyncEngineFetchedRecordZoneChangesEvent FetchedRecordZoneChangesEvent { get; } public virtual CKSyncEngineSentDatabaseChangesEvent SentDatabaseChangesEvent { get; } public virtual CKSyncEngineSentRecordZoneChangesEvent SentRecordZoneChangesEvent { get; } public virtual CKSyncEngineStateUpdateEvent StateUpdateEvent { get; } public virtual CKSyncEngineEventType Type { get; } public virtual CKSyncEngineWillFetchChangesEvent WillFetchChangesEvent { get; } public virtual CKSyncEngineWillFetchRecordZoneChangesEvent WillFetchRecordZoneChangesEvent { get; } public virtual CKSyncEngineWillSendChangesEvent WillSendChangesEvent { get; } }

New Type: CloudKit.CKSyncEngineEventType

[Serializable] public enum CKSyncEngineEventType { AccountChange = 1, DidFetchChanges = 9, DidFetchRecordZoneChanges = 8, DidSendChanges = 11, FetchedDatabaseChanges = 2, FetchedRecordZoneChanges = 3, SentDatabaseChanges = 4, SentRecordZoneChanges = 5, StateUpdate = 0, WillFetchChanges = 6, WillFetchRecordZoneChanges = 7, WillSendChanges = 10, }

New Type: CloudKit.CKSyncEngineFailedRecordSave

public class CKSyncEngineFailedRecordSave : Foundation.NSObject { // constructors protected CKSyncEngineFailedRecordSave (Foundation.NSObjectFlag t); protected CKSyncEngineFailedRecordSave (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual Foundation.NSError Error { get; } public virtual CKRecord Record { get; } }

New Type: CloudKit.CKSyncEngineFailedZoneSave

public class CKSyncEngineFailedZoneSave : Foundation.NSObject { // constructors protected CKSyncEngineFailedZoneSave (Foundation.NSObjectFlag t); protected CKSyncEngineFailedZoneSave (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual Foundation.NSError Error { get; } public virtual CKRecordZone RecordZone { get; } }

New Type: CloudKit.CKSyncEngineFetchChangesContext

public class CKSyncEngineFetchChangesContext : Foundation.NSObject { // constructors protected CKSyncEngineFetchChangesContext (Foundation.NSObjectFlag t); protected CKSyncEngineFetchChangesContext (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKSyncEngineFetchChangesOptions Options { get; } public virtual CKSyncEngineSyncReason Reason { get; } }

New Type: CloudKit.CKSyncEngineFetchChangesOptions

public class CKSyncEngineFetchChangesOptions : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors public CKSyncEngineFetchChangesOptions (); public CKSyncEngineFetchChangesOptions (CKSyncEngineFetchChangesScope scope); protected CKSyncEngineFetchChangesOptions (Foundation.NSObjectFlag t); protected CKSyncEngineFetchChangesOptions (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKOperationGroup OperationGroup { get; set; } public virtual CKRecordZoneID[] PrioritizedZoneIds { get; set; } public virtual CKSyncEngineFetchChangesScope Scope { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); }

New Type: CloudKit.CKSyncEngineFetchChangesScope

public class CKSyncEngineFetchChangesScope : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors public CKSyncEngineFetchChangesScope (); protected CKSyncEngineFetchChangesScope (Foundation.NSObjectFlag t); protected CKSyncEngineFetchChangesScope (IntPtr handle); public CKSyncEngineFetchChangesScope (Foundation.NSSet zoneIds, bool excluded); // properties public override IntPtr ClassHandle { get; } public virtual Foundation.NSSet ExcludedZoneIds { get; } public virtual Foundation.NSSet ZoneIds { get; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); }

New Type: CloudKit.CKSyncEngineFetchedDatabaseChangesEvent

public class CKSyncEngineFetchedDatabaseChangesEvent : CloudKit.CKSyncEngineEvent { // constructors public CKSyncEngineFetchedDatabaseChangesEvent (); protected CKSyncEngineFetchedDatabaseChangesEvent (Foundation.NSObjectFlag t); protected CKSyncEngineFetchedDatabaseChangesEvent (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKSyncEngineFetchedZoneDeletion[] Deletions { get; } public virtual CKRecordZone[] Modifications { get; } }

New Type: CloudKit.CKSyncEngineFetchedRecordDeletion

public class CKSyncEngineFetchedRecordDeletion : Foundation.NSObject { // constructors protected CKSyncEngineFetchedRecordDeletion (Foundation.NSObjectFlag t); protected CKSyncEngineFetchedRecordDeletion (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKRecordID RecordId { get; } public virtual string RecordType { get; } }

New Type: CloudKit.CKSyncEngineFetchedRecordZoneChangesEvent

public class CKSyncEngineFetchedRecordZoneChangesEvent : CloudKit.CKSyncEngineEvent { // constructors public CKSyncEngineFetchedRecordZoneChangesEvent (); protected CKSyncEngineFetchedRecordZoneChangesEvent (Foundation.NSObjectFlag t); protected CKSyncEngineFetchedRecordZoneChangesEvent (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKSyncEngineFetchedRecordDeletion[] Deletions { get; } public virtual CKRecord[] Modifications { get; } }

New Type: CloudKit.CKSyncEngineFetchedZoneDeletion

public class CKSyncEngineFetchedZoneDeletion : Foundation.NSObject { // constructors protected CKSyncEngineFetchedZoneDeletion (Foundation.NSObjectFlag t); protected CKSyncEngineFetchedZoneDeletion (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKSyncEngineZoneDeletionReason Reason { get; } public virtual CKRecordZoneID ZoneId { get; } }

New Type: CloudKit.CKSyncEnginePendingDatabaseChange

public class CKSyncEnginePendingDatabaseChange : Foundation.NSObject { // constructors protected CKSyncEnginePendingDatabaseChange (Foundation.NSObjectFlag t); protected CKSyncEnginePendingDatabaseChange (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKSyncEnginePendingDatabaseChangeType Type { get; } public virtual CKRecordZoneID ZoneId { get; } }

New Type: CloudKit.CKSyncEnginePendingDatabaseChangeType

[Serializable] public enum CKSyncEnginePendingDatabaseChangeType { DeleteZone = 1, SaveZone = 0, }

New Type: CloudKit.CKSyncEnginePendingRecordZoneChange

public class CKSyncEnginePendingRecordZoneChange : Foundation.NSObject { // constructors protected CKSyncEnginePendingRecordZoneChange (Foundation.NSObjectFlag t); protected CKSyncEnginePendingRecordZoneChange (IntPtr handle); public CKSyncEnginePendingRecordZoneChange (CKRecordID recordId, CKSyncEnginePendingRecordZoneChangeType type); // properties public override IntPtr ClassHandle { get; } public virtual CKRecordID RecordId { get; } public virtual CKSyncEnginePendingRecordZoneChangeType Type { get; } }

New Type: CloudKit.CKSyncEnginePendingRecordZoneChangeType

[Serializable] public enum CKSyncEnginePendingRecordZoneChangeType { DeleteRecord = 1, SaveRecord = 0, }

New Type: CloudKit.CKSyncEnginePendingZoneDelete

public class CKSyncEnginePendingZoneDelete : CloudKit.CKSyncEnginePendingDatabaseChange { // constructors public CKSyncEnginePendingZoneDelete (); public CKSyncEnginePendingZoneDelete (CKRecordZoneID zoneId); protected CKSyncEnginePendingZoneDelete (Foundation.NSObjectFlag t); protected CKSyncEnginePendingZoneDelete (IntPtr handle); // properties public override IntPtr ClassHandle { get; } }

New Type: CloudKit.CKSyncEnginePendingZoneSave

public class CKSyncEnginePendingZoneSave : CloudKit.CKSyncEnginePendingDatabaseChange { // constructors public CKSyncEnginePendingZoneSave (); public CKSyncEnginePendingZoneSave (CKRecordZone zone); protected CKSyncEnginePendingZoneSave (Foundation.NSObjectFlag t); protected CKSyncEnginePendingZoneSave (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKRecordZone Zone { get; } }

New Type: CloudKit.CKSyncEngineRecordZoneChangeBatch

public class CKSyncEngineRecordZoneChangeBatch : Foundation.NSObject { // constructors protected CKSyncEngineRecordZoneChangeBatch (Foundation.NSObjectFlag t); protected CKSyncEngineRecordZoneChangeBatch (IntPtr handle); public CKSyncEngineRecordZoneChangeBatch (CKSyncEnginePendingRecordZoneChange[] pendingChanges, System.Func<CKRecordID,CloudKit.CKRecord> recordProvider); public CKSyncEngineRecordZoneChangeBatch (CKRecord[] recordsToSave, CKRecordID[] recordIdsToDelete, bool atomicByZone); // properties public virtual bool AtomicByZone { get; set; } public override IntPtr ClassHandle { get; } public virtual CKRecordID[] RecordIdsToDelete { get; } public virtual CKRecord[] RecordsToSave { get; } }

New Type: CloudKit.CKSyncEngineSendChangesContext

public class CKSyncEngineSendChangesContext : Foundation.NSObject { // constructors protected CKSyncEngineSendChangesContext (Foundation.NSObjectFlag t); protected CKSyncEngineSendChangesContext (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKSyncEngineSendChangesOptions Options { get; } public virtual CKSyncEngineSyncReason Reason { get; } }

New Type: CloudKit.CKSyncEngineSendChangesOptions

public class CKSyncEngineSendChangesOptions : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors public CKSyncEngineSendChangesOptions (); public CKSyncEngineSendChangesOptions (CKSyncEngineSendChangesScope scope); protected CKSyncEngineSendChangesOptions (Foundation.NSObjectFlag t); protected CKSyncEngineSendChangesOptions (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKOperationGroup OperationGroup { get; set; } public virtual CKSyncEngineSendChangesScope Scope { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); }

New Type: CloudKit.CKSyncEngineSendChangesScope

public class CKSyncEngineSendChangesScope : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors public CKSyncEngineSendChangesScope (); protected CKSyncEngineSendChangesScope (Foundation.NSObjectFlag t); public CKSyncEngineSendChangesScope (Foundation.NSSet recordIds); protected CKSyncEngineSendChangesScope (IntPtr handle); public CKSyncEngineSendChangesScope (Foundation.NSSet zoneIds, bool excluded); // properties public override IntPtr ClassHandle { get; } public virtual Foundation.NSSet ExcludedZoneIds { get; } public virtual Foundation.NSSet RecordIds { get; } public virtual Foundation.NSSet ZoneIds { get; } // methods public virtual bool ContainsPendingRecordZoneChange (CKSyncEnginePendingRecordZoneChange pendingRecordZoneChange); public virtual bool ContainsRecordId (CKRecordID recordId); public virtual Foundation.NSObject Copy (Foundation.NSZone zone); }

New Type: CloudKit.CKSyncEngineSentDatabaseChangesEvent

public class CKSyncEngineSentDatabaseChangesEvent : CloudKit.CKSyncEngineEvent { // constructors public CKSyncEngineSentDatabaseChangesEvent (); protected CKSyncEngineSentDatabaseChangesEvent (Foundation.NSObjectFlag t); protected CKSyncEngineSentDatabaseChangesEvent (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKRecordZoneID[] DeletedZoneIds { get; } public virtual Foundation.NSDictionary<CKRecordZoneID,Foundation.NSError> FailedZoneDeletes { get; } public virtual CKSyncEngineFailedZoneSave[] FailedZoneSaves { get; } public virtual CKRecordZone[] SavedZones { get; } }

New Type: CloudKit.CKSyncEngineSentRecordZoneChangesEvent

public class CKSyncEngineSentRecordZoneChangesEvent : CloudKit.CKSyncEngineEvent { // constructors public CKSyncEngineSentRecordZoneChangesEvent (); protected CKSyncEngineSentRecordZoneChangesEvent (Foundation.NSObjectFlag t); protected CKSyncEngineSentRecordZoneChangesEvent (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKRecordID[] DeletedRecordIds { get; } public virtual Foundation.NSDictionary<CKRecordID,Foundation.NSError> FailedRecordDeletes { get; } public virtual CKSyncEngineFailedRecordSave[] FailedRecordSaves { get; } public virtual CKRecord[] SavedRecords { get; } }

New Type: CloudKit.CKSyncEngineState

public class CKSyncEngineState : Foundation.NSObject { // constructors protected CKSyncEngineState (Foundation.NSObjectFlag t); protected CKSyncEngineState (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual bool HasPendingUntrackedChanges { get; set; } public virtual CKSyncEnginePendingDatabaseChange[] PendingDatabaseChanges { get; } public virtual CKSyncEnginePendingRecordZoneChange[] PendingRecordZoneChanges { get; } public virtual CKRecordZoneID[] ZoneIdsWithUnfetchedServerChanges { get; } // methods public virtual void AddPendingDatabaseChanges (CKSyncEnginePendingDatabaseChange[] changes); public virtual void AddPendingRecordZoneChanges (CKSyncEnginePendingRecordZoneChange[] changes); public virtual void RemovePendingDatabaseChanges (CKSyncEnginePendingDatabaseChange[] changes); public virtual void RemovePendingRecordZoneChanges (CKSyncEnginePendingRecordZoneChange[] changes); }

New Type: CloudKit.CKSyncEngineStateSerialization

public class CKSyncEngineStateSerialization : Foundation.NSObject, Foundation.INSCoding, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors public CKSyncEngineStateSerialization (Foundation.NSCoder coder); protected CKSyncEngineStateSerialization (Foundation.NSObjectFlag t); protected CKSyncEngineStateSerialization (IntPtr handle); // properties public override IntPtr ClassHandle { get; } // methods public virtual void EncodeTo (Foundation.NSCoder encoder); }

New Type: CloudKit.CKSyncEngineStateUpdateEvent

public class CKSyncEngineStateUpdateEvent : CloudKit.CKSyncEngineEvent { // constructors public CKSyncEngineStateUpdateEvent (); protected CKSyncEngineStateUpdateEvent (Foundation.NSObjectFlag t); protected CKSyncEngineStateUpdateEvent (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKSyncEngineStateSerialization StateSerialization { get; } }

New Type: CloudKit.CKSyncEngineSyncReason

[Serializable] public enum CKSyncEngineSyncReason { Manual = 1, Scheduled = 0, }

New Type: CloudKit.CKSyncEngineWillFetchChangesEvent

public class CKSyncEngineWillFetchChangesEvent : CloudKit.CKSyncEngineEvent { // constructors public CKSyncEngineWillFetchChangesEvent (); protected CKSyncEngineWillFetchChangesEvent (Foundation.NSObjectFlag t); protected CKSyncEngineWillFetchChangesEvent (IntPtr handle); // properties public override IntPtr ClassHandle { get; } }

New Type: CloudKit.CKSyncEngineWillFetchRecordZoneChangesEvent

public class CKSyncEngineWillFetchRecordZoneChangesEvent : CloudKit.CKSyncEngineEvent { // constructors public CKSyncEngineWillFetchRecordZoneChangesEvent (); protected CKSyncEngineWillFetchRecordZoneChangesEvent (Foundation.NSObjectFlag t); protected CKSyncEngineWillFetchRecordZoneChangesEvent (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKRecordZoneID ZoneId { get; } }

New Type: CloudKit.CKSyncEngineWillSendChangesEvent

public class CKSyncEngineWillSendChangesEvent : CloudKit.CKSyncEngineEvent { // constructors public CKSyncEngineWillSendChangesEvent (); protected CKSyncEngineWillSendChangesEvent (Foundation.NSObjectFlag t); protected CKSyncEngineWillSendChangesEvent (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKSyncEngineSendChangesContext Context { get; } }

New Type: CloudKit.CKSyncEngineZoneDeletionReason

[Serializable] public enum CKSyncEngineZoneDeletionReason { Deleted = 0, EncryptedDataReset = 2, Purged = 1, }

New Type: CloudKit.ICKSyncEngineDelegate

public interface ICKSyncEngineDelegate : ObjCRuntime.INativeObject, System.IDisposable { // methods public abstract void SyncEngine (CKSyncEngine syncEngine, CKSyncEngineEvent event); public abstract CKSyncEngineRecordZoneChangeBatch SyncEngine (CKSyncEngine syncEngine, CKSyncEngineSendChangesContext context); }

Namespace Contacts

Type Changed: Contacts.CNErrorCode

Added value:

FeatureNotAvailable = 104,

Namespace CoreBluetooth

Type Changed: CoreBluetooth.CBCentralManager

Added event:

public event System.EventHandler DidDisconnectPeripheral;

Type Changed: CoreBluetooth.CBCentralManagerDelegate

Added method:

public virtual void DidDisconnectPeripheral (CBCentralManager central, CBPeripheral peripheral, double timestamp, bool isReconnecting, Foundation.NSError error);

Type Changed: CoreBluetooth.CBCentralManagerDelegate_Extensions

Added method:

public static void DidDisconnectPeripheral (this ICBCentralManagerDelegate This, CBCentralManager central, CBPeripheral peripheral, double timestamp, bool isReconnecting, Foundation.NSError error);

Type Changed: CoreBluetooth.CBConnectPeripheralOptions

Added property:

public bool? EnableAutoReconnect { get; }

New Type: CoreBluetooth.CBPeripheralDiconnectionEventEventArgs

public class CBPeripheralDiconnectionEventEventArgs : System.EventArgs { // constructors public CBPeripheralDiconnectionEventEventArgs (CBPeripheral peripheral, double timestamp, bool isReconnecting, Foundation.NSError error); // properties public Foundation.NSError Error { get; set; } public bool IsReconnecting { get; set; } public CBPeripheral Peripheral { get; set; } public double Timestamp { get; set; } }

Namespace CoreData

Type Changed: CoreData.NSAttributeType

Added value:

CompositeAttributeType = 2100,

Type Changed: CoreData.NSManagedObjectModel

Added property:

public virtual string VersionChecksum { get; }

Added method:

public static Foundation.NSDictionary<Foundation.NSString,Foundation.NSString> ChecksumsForVersionedModel (Foundation.NSUrl modelUrl, out Foundation.NSError error);

Type Changed: CoreData.NSPersistentStoreCoordinator

Added methods:

public virtual bool FinishDeferredLightweightMigration (out Foundation.NSError error); public virtual bool FinishDeferredLightweightMigrationTask (out Foundation.NSError error);

Type Changed: CoreData.UserInfoKeys

Added properties:

public static Foundation.NSString DeferredLightweightMigrationOptionKey { get; } public static Foundation.NSString StagedMigrationManagerOptionKey { get; }

New Type: CoreData.NSCompositeAttributeDescription

public class NSCompositeAttributeDescription : CoreData.NSAttributeDescription { // constructors public NSCompositeAttributeDescription (); public NSCompositeAttributeDescription (Foundation.NSCoder coder); protected NSCompositeAttributeDescription (Foundation.NSObjectFlag t); protected NSCompositeAttributeDescription (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual NSAttributeDescription[] Elements { get; set; } }

New Type: CoreData.NSCustomMigrationStage

public class NSCustomMigrationStage : CoreData.NSMigrationStage { // constructors protected NSCustomMigrationStage (Foundation.NSObjectFlag t); protected NSCustomMigrationStage (IntPtr handle); public NSCustomMigrationStage (NSManagedObjectModelReference currentModel, NSManagedObjectModelReference nextModel); // properties public override IntPtr ClassHandle { get; } public virtual NSManagedObjectModelReference CurrentModel { get; } public virtual System.Func<NSStagedMigrationManager,CoreData.NSCustomMigrationStage,Foundation.NSError,System.Boolean> DidMigrateHandler { get; set; } public virtual NSManagedObjectModelReference NextModel { get; } public virtual System.Func<NSStagedMigrationManager,CoreData.NSCustomMigrationStage,Foundation.NSError,System.Boolean> WillMigrateHandler { get; set; } }

New Type: CoreData.NSLightweightMigrationStage

public class NSLightweightMigrationStage : CoreData.NSMigrationStage { // constructors protected NSLightweightMigrationStage (Foundation.NSObjectFlag t); protected NSLightweightMigrationStage (IntPtr handle); public NSLightweightMigrationStage (string[] versionChecksums); // properties public override IntPtr ClassHandle { get; } public virtual string[] VersionChecksums { get; } }

New Type: CoreData.NSManagedObjectModelReference

public class NSManagedObjectModelReference : Foundation.NSObject { // constructors protected NSManagedObjectModelReference (Foundation.NSObjectFlag t); protected NSManagedObjectModelReference (IntPtr handle); public NSManagedObjectModelReference (NSManagedObjectModel model, string versionChecksum); public NSManagedObjectModelReference (Foundation.NSUrl fileUrl, string versionChecksum); public NSManagedObjectModelReference (Foundation.NSDictionary versionHash, Foundation.NSBundle bundle, string versionChecksum); public NSManagedObjectModelReference (string modelName, Foundation.NSBundle bundle, string versionChecksum); // properties public override IntPtr ClassHandle { get; } public virtual NSManagedObjectModel ResolvedModel { get; } public virtual string VersionChecksum { get; } }

New Type: CoreData.NSMigrationStage

public class NSMigrationStage : Foundation.NSObject { // constructors public NSMigrationStage (); protected NSMigrationStage (Foundation.NSObjectFlag t); protected NSMigrationStage (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual string Label { get; set; } }

New Type: CoreData.NSStagedMigrationManager

public class NSStagedMigrationManager : Foundation.NSObject { // constructors public NSStagedMigrationManager (NSMigrationStage[] stages); protected NSStagedMigrationManager (Foundation.NSObjectFlag t); protected NSStagedMigrationManager (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual NSPersistentContainer Container { get; } public virtual NSMigrationStage[] Stages { get; } }

Namespace CoreFoundation

Type Changed: CoreFoundation.CFRunLoop

Added properties:

public string[] AllModes { get; } public string CurrentMode { get; }

Added method:

public CFRunLoopExitReason RunInMode (string mode, double seconds, bool returnAfterSourceHandled);

Namespace CoreGraphics

Type Changed: CoreGraphics.CGContext

Added method:

public void DrawConicGradient (CGGradient gradient, CGPoint point, nfloat angle);

Namespace CoreLocation

New Type: CoreLocation.CLBackgroundActivitySession

public class CLBackgroundActivitySession : Foundation.NSObject { // constructors protected CLBackgroundActivitySession (Foundation.NSObjectFlag t); protected CLBackgroundActivitySession (IntPtr handle); // properties public override IntPtr ClassHandle { get; } // methods public static CLBackgroundActivitySession Create (); public virtual void Invalidate (); }

New Type: CoreLocation.CLLiveUpdateConfiguration

[Serializable] public enum CLLiveUpdateConfiguration { Airborne = 4, AutomotiveNavigation = 1, Default = 0, Fitness = 3, OtherNavigation = 2, }

New Type: CoreLocation.CLLocationUpdater

public class CLLocationUpdater : Foundation.NSObject { // constructors protected CLLocationUpdater (Foundation.NSObjectFlag t); protected CLLocationUpdater (IntPtr handle); // properties public override IntPtr ClassHandle { get; } // methods public static CLLocationUpdater CreateLiveUpdates (CoreFoundation.DispatchQueue queue, System.Action handler); public static CLLocationUpdater CreateLiveUpdates (CLLiveUpdateConfiguration configuration, CoreFoundation.DispatchQueue queue, System.Action handler); public virtual void Invalidate (); public virtual void Pause (); public virtual void Resume (); }

New Type: CoreLocation.CLMonitoringState

[Serializable] public enum CLMonitoringState { Satisfied = 1, Unknown = 0, Unsatisfied = 2, }

New Type: CoreLocation.CLUpdate

public class CLUpdate : Foundation.NSObject { // constructors public CLUpdate (); protected CLUpdate (Foundation.NSObjectFlag t); protected CLUpdate (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual bool IsStationary { get; } public virtual CLLocation Location { get; } }

Namespace CoreML

Type Changed: CoreML.MLModel

Added properties:

public static IMLComputeDeviceProtocol[] AllComputeDevices { get; } public static IMLComputeDeviceProtocol[] AvailableComputeDevices { get; }

Added methods:

public virtual void GetPrediction (IMLFeatureProvider input, System.Action<IMLFeatureProvider,Foundation.NSError> completionHandler); public virtual void GetPrediction (IMLFeatureProvider input, MLPredictionOptions options, System.Action<IMLFeatureProvider,Foundation.NSError> completionHandler); public virtual System.Threading.Tasks.Task GetPredictionAsync (IMLFeatureProvider input); public virtual System.Threading.Tasks.Task GetPredictionAsync (IMLFeatureProvider input, MLPredictionOptions options);

Type Changed: CoreML.MLModelError

Added value:

PredictionCancelled = 11,

New Type: CoreML.IMLComputeDeviceProtocol

public interface IMLComputeDeviceProtocol : ObjCRuntime.INativeObject, System.IDisposable { }

New Type: CoreML.MLCpuComputeDevice

public class MLCpuComputeDevice : Foundation.NSObject, IMLComputeDeviceProtocol, ObjCRuntime.INativeObject, System.IDisposable { // constructors protected MLCpuComputeDevice (Foundation.NSObjectFlag t); protected MLCpuComputeDevice (IntPtr handle); // properties public override IntPtr ClassHandle { get; } }

New Type: CoreML.MLGpuComputeDevice

public class MLGpuComputeDevice : Foundation.NSObject, IMLComputeDeviceProtocol, ObjCRuntime.INativeObject, System.IDisposable { // constructors protected MLGpuComputeDevice (Foundation.NSObjectFlag t); protected MLGpuComputeDevice (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual Foundation.NSObject MetalDevice { get; } }

New Type: CoreML.MLNeuralEngineComputeDevice

public class MLNeuralEngineComputeDevice : Foundation.NSObject, IMLComputeDeviceProtocol, ObjCRuntime.INativeObject, System.IDisposable { // constructors protected MLNeuralEngineComputeDevice (Foundation.NSObjectFlag t); protected MLNeuralEngineComputeDevice (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual nint TotalCoreCount { get; } }

Namespace CoreMotion

Type Changed: CoreMotion.CMMovementDisorderManager

Added property:

public static string Version { get; }

Type Changed: CoreMotion.CMWaterSubmersionManager

Added property:

public virtual Foundation.NSMeasurement<Foundation.NSUnitLength> MaximumDepth { get; }

New Type: CoreMotion.CMBatchedSensorManager

public class CMBatchedSensorManager : Foundation.NSObject { // constructors public CMBatchedSensorManager (); protected CMBatchedSensorManager (Foundation.NSObjectFlag t); protected CMBatchedSensorManager (IntPtr handle); // properties public virtual bool AccelerometerActive { get; } public virtual CMAccelerometerData[] AccelerometerBatch { get; } public virtual nint AccelerometerDataFrequency { get; } public static bool AccelerometerSupported { get; } public static CMAuthorizationStatus AuthorizationStatus { get; } public override IntPtr ClassHandle { get; } public virtual bool DeviceMotionActive { get; } public virtual CMDeviceMotion[] DeviceMotionBatch { get; } public virtual nint DeviceMotionDataFrequency { get; } public static bool DeviceMotionSupported { get; } // methods public virtual void StartAccelerometerUpdates (); public virtual void StartAccelerometerUpdates (System.Action<CMAccelerometerData[],Foundation.NSError> handler); public virtual void StartDeviceMotionUpdates (); public virtual void StartDeviceMotionUpdates (System.Action<CMDeviceMotion[],Foundation.NSError> handler); public virtual void StopAccelerometerUpdates (); public virtual void StopDeviceMotionUpdates (); }

New Type: CoreMotion.CMHighFrequencyHeartRateData

public class CMHighFrequencyHeartRateData : CoreMotion.CMLogItem { // constructors public CMHighFrequencyHeartRateData (); public CMHighFrequencyHeartRateData (Foundation.NSCoder coder); protected CMHighFrequencyHeartRateData (Foundation.NSObjectFlag t); protected CMHighFrequencyHeartRateData (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CMHighFrequencyHeartRateDataConfidence Confidence { get; } public virtual Foundation.NSDate Date { get; } public virtual double HeartRate { get; } }

New Type: CoreMotion.CMHighFrequencyHeartRateDataConfidence

[Serializable] public enum CMHighFrequencyHeartRateDataConfidence { High = 2, Highest = 3, Low = 0, Medium = 1, }

New Type: CoreMotion.CMOdometerData

public class CMOdometerData : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors public CMOdometerData (); public CMOdometerData (Foundation.NSCoder coder); protected CMOdometerData (Foundation.NSObjectFlag t); protected CMOdometerData (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual double DeltaAltitude { get; } public virtual double DeltaDistance { get; } public virtual double DeltaDistanceAccuracy { get; } public virtual Foundation.NSDate EndDate { get; } public virtual Foundation.NSDate GpsDate { get; } public virtual Foundation.NSNumber MaxAbsSlope { get; } public virtual CMOdometerOriginDevice OriginDevice { get; } public virtual Foundation.NSNumber Slope { get; } public virtual double Speed { get; } public virtual double SpeedAccuracy { get; } public virtual Foundation.NSDate StartDate { get; } public virtual double VerticalAccuracy { get; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual void EncodeTo (Foundation.NSCoder encoder); }

New Type: CoreMotion.CMOdometerOriginDevice

[Serializable] public enum CMOdometerOriginDevice { Local = 1, Remote = 2, Unknown = 0, }

Namespace CoreText

Type Changed: CoreText.CTFontDescriptor

Obsoleted methods:

[Obsolete ("Use 'MatchFontDescriptors (CTFontDescriptor[], NSSet, CTFontDescriptorProgressHandler)' instead.")] public static bool MatchFontDescriptors (CTFontDescriptor[] descriptors, Foundation.NSSet mandatoryAttributes, System.Func<CTFontDescriptorMatchingState,System.IntPtr,System.Boolean> progressHandler);

Added method:

public static bool MatchFontDescriptors (CTFontDescriptor[] descriptors, Foundation.NSSet mandatoryAttributes, CTFontDescriptor.CTFontDescriptorProgressHandler progressHandler);

Type Changed: CoreText.CTFontDescriptorAttributes

Added property:

public bool? WeakEnabled { get; set; }

New Type: CoreText.CTFontDescriptorMatchingProgress

public class CTFontDescriptorMatchingProgress : Foundation.DictionaryContainer { // constructors public CTFontDescriptorMatchingProgress (); public CTFontDescriptorMatchingProgress (Foundation.NSDictionary dictionary); // properties public long? CurrentAssetSize { get; } public CTFontDescriptor[] Descriptors { get; } public Foundation.NSError Error { get; } public double? Percentage { get; } public CTFontDescriptor[] Result { get; } public CTFontDescriptor SourceDescriptor { get; } public long? TotalAssetSize { get; } public long? TotalDownloadedSize { get; } }

Namespace EventKit

Type Changed: EventKit.EKAuthorizationStatus

Added value:

Type Changed: EventKit.EKEventStore

Added methods:

public virtual void RequestFullAccessToEvents (EKEventStoreRequestAccessCompletionHandler completion); public virtual System.Threading.Tasks.Task<System.Tuple<System.Boolean,Foundation.NSError>> RequestFullAccessToEventsAsync (); public virtual void RequestFullAccessToReminders (EKEventStoreRequestAccessCompletionHandler completion); public virtual System.Threading.Tasks.Task<System.Tuple<System.Boolean,Foundation.NSError>> RequestFullAccessToRemindersAsync (); public virtual void RequestWriteOnlyAccessToEvents (EKEventStoreRequestAccessCompletionHandler completion); public virtual System.Threading.Tasks.Task<System.Tuple<System.Boolean,Foundation.NSError>> RequestWriteOnlyAccessToEventsAsync ();

New Type: EventKit.EKEventStoreRequestAccessCompletionHandler

public sealed delegate EKEventStoreRequestAccessCompletionHandler : System.MulticastDelegate { // constructors public EKEventStoreRequestAccessCompletionHandler (object object, IntPtr method); // methods public virtual System.IAsyncResult BeginInvoke (bool didRequestAccess, Foundation.NSError error, System.AsyncCallback callback, object object); public virtual void EndInvoke (System.IAsyncResult result); public virtual void Invoke (bool didRequestAccess, Foundation.NSError error); }

Namespace Foundation

Type Changed: Foundation.DictionaryContainer

Added method:

protected T GetStrongDictionary (NSString key, System.Func<NSDictionary,T> createStrongDictionary);

Type Changed: Foundation.NSAttributedStringNameKey

Added values:

InflectionAgreementArgument = 10, InflectionAgreementConcept = 11, InflectionReferentConcept = 12,

Type Changed: Foundation.NSDataWritingOptions

Added value:

FileProtectionCompleteWhenUserInactive = 1342177280,

Type Changed: Foundation.NSFileManager

Obsoleted properties:

[Obsolete ("Use the 'NSFileProtectionType' instead.")] public static NSString FileProtectionComplete { get; } [Obsolete ("Use the 'NSFileProtectionType' instead.")] public static NSString FileProtectionCompleteUnlessOpen { get; } [Obsolete ("Use the 'NSFileProtectionType' instead.")] public static NSString FileProtectionCompleteUntilFirstUserAuthentication { get; } [Obsolete ("Use the 'NSFileProtectionType' instead.")] public static NSString FileProtectionNone { get; }

Type Changed: Foundation.NSLocale

Added properties:

public virtual string LanguageIdentifier { get; } public virtual string RegionCode { get; }

Type Changed: Foundation.NSMorphology

Added properties:

public virtual NSGrammaticalDefiniteness Definiteness { get; set; } public virtual NSGrammaticalDetermination Determination { get; set; } public virtual NSGrammaticalCase GrammaticalCase { get; set; } public virtual NSGrammaticalPerson GrammaticalPerson { get; set; } public virtual NSGrammaticalPronounType PronounType { get; set; }

Type Changed: Foundation.NSUrl

Added properties:

public static NSString DirectoryEntryCountKey { get; } public static NSString FileProtectionCompleteWhenUserInactive { get; }

Added methods:

public static NSUrl CreateFileUrl (string path); public static NSUrl CreateFileUrl (string path, bool isDir); public static NSUrl FromString (string url, bool encodingInvalidCharacters);

Type Changed: Foundation.NSUrlComponents

Added method:

public static NSUrlComponents FromString (string url, bool encodingInvalidCharacters);

Type Changed: Foundation.NSUrlConnection

Obsoleted methods:

[Obsolete ("This API is not available on this platform.")] public static NSData SendSynchronousRequest (NSUrlRequest request, out NSUrlResponse response, out NSError error);

Type Changed: Foundation.NSUrlSession

Added methods:

public virtual NSUrlSessionUploadTask CreateUploadTask (NSData resumeData); public virtual NSUrlSessionUploadTask CreateUploadTask (NSData resumeData, System.Action<NSData,Foundation.NSUrlResponse,Foundation.NSError> completionHandler); public virtual System.Threading.Tasks.Task CreateUploadTaskAsync (NSData resumeData); public virtual System.Threading.Tasks.Task CreateUploadTaskAsync (NSData resumeData, out NSUrlSessionUploadTask result);

Type Changed: Foundation.NSUrlSessionTaskDelegate

Added methods:

public virtual void DidReceiveInformationalResponse (NSUrlSession session, NSUrlSessionTask task, NSHttpUrlResponse response); public virtual void NeedNewBodyStream (NSUrlSession session, NSUrlSessionTask task, long offset, System.Action completionHandler);

Type Changed: Foundation.NSUrlSessionTaskDelegate_Extensions

Added methods:

public static void DidReceiveInformationalResponse (this INSUrlSessionTaskDelegate This, NSUrlSession session, NSUrlSessionTask task, NSHttpUrlResponse response); public static void NeedNewBodyStream (this INSUrlSessionTaskDelegate This, NSUrlSession session, NSUrlSessionTask task, long offset, System.Action completionHandler);

Type Changed: Foundation.NSUrlSessionUploadTask

Added property:

public static NSString ResumeDataKey { get; }

Added methods:

public virtual void CancelByProducingResumeData (System.Action completionHandler); public virtual System.Threading.Tasks.Task CancelByProducingResumeDataAsync ();

New Type: Foundation.NSFileProtectionType

[Serializable] public enum NSFileProtectionType { Complete = 0, CompleteUnlessOpen = 1, CompleteUntilFirstUserAuthentication = 2, CompleteWhenUserInactive = 4, None = 3, }

New Type: Foundation.NSFileProtectionTypeExtensions

public static class NSFileProtectionTypeExtensions { // methods public static NSString GetConstant (this NSFileProtectionType self); public static NSFileProtectionType GetValue (NSString constant); }

New Type: Foundation.NSGrammaticalCase

[Serializable] public enum NSGrammaticalCase { Ablative = 6, Accusative = 2, Adessive = 7, Allative = 8, Dative = 3, Elative = 9, Essive = 11, Genitive = 4, Illative = 10, Inessive = 12, Locative = 13, Nominative = 1, NotSet = 0, Prepositional = 5, Translative = 14, }

New Type: Foundation.NSGrammaticalDefiniteness

[Serializable] public enum NSGrammaticalDefiniteness { Definite = 2, Indefinite = 1, NotSet = 0, }

New Type: Foundation.NSGrammaticalDetermination

[Serializable] public enum NSGrammaticalDetermination { Dependent = 2, Independent = 1, NotSet = 0, }

New Type: Foundation.NSGrammaticalPerson

[Serializable] public enum NSGrammaticalPerson { First = 1, NotSet = 0, Second = 2, Third = 3, }

New Type: Foundation.NSGrammaticalPronounType

[Serializable] public enum NSGrammaticalPronounType { NotSet = 0, Personal = 1, Possessive = 3, Reflexive = 2, }

New Type: Foundation.NSMorphologyPronoun

public class NSMorphologyPronoun : Foundation.NSObject, INSCoding, INSCopying, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors public NSMorphologyPronoun (NSCoder coder); protected NSMorphologyPronoun (NSObjectFlag t); protected NSMorphologyPronoun (IntPtr handle); public NSMorphologyPronoun (string pronoun, NSMorphology morphology, NSMorphology dependentMorphology); // properties public override IntPtr ClassHandle { get; } public virtual NSMorphology DependentMorphology { get; } public virtual NSMorphology Morphology { get; } public virtual string Pronoun { get; } // methods public virtual NSObject Copy (NSZone zone); public virtual void EncodeTo (NSCoder encoder); }

New Type: Foundation.NSTermOfAddress

public class NSTermOfAddress : Foundation.NSObject, INSCoding, INSCopying, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors public NSTermOfAddress (NSCoder coder); protected NSTermOfAddress (NSObjectFlag t); protected NSTermOfAddress (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public static NSTermOfAddress Feminine { get; } public virtual string LanguageIdentifier { get; } public static NSTermOfAddress Masculine { get; } public static NSTermOfAddress Neutral { get; } public virtual NSMorphologyPronoun[] Pronouns { get; } // methods public virtual NSObject Copy (NSZone zone); public virtual void EncodeTo (NSCoder encoder); public static NSTermOfAddress GetLocalized (string language, NSMorphologyPronoun[] pronouns); }

New Type: Foundation.NSUrlSessionUploadTaskResumeRequest

public class NSUrlSessionUploadTaskResumeRequest { // constructors public NSUrlSessionUploadTaskResumeRequest (NSData arg1, NSUrlResponse arg2); // properties public NSData Arg1 { get; set; } public NSUrlResponse Arg2 { get; set; } }

Namespace GameKit

Type Changed: GameKit.GKAchievementDescription

Added property:

public virtual Foundation.NSNumber RarityPercent { get; }

Namespace HealthKit

Type Changed: HealthKit.HKErrorCode

Added values:

BackgroundWorkoutSessionNotAllowed = 14, DataSizeExceeded = 13, WorkoutActivityNotAllowed = 12,

Type Changed: HealthKit.HKMetadataKey

Added properties:

public static Foundation.NSString AppleFitnessPlusSession { get; } public static Foundation.NSString CyclingFunctionalThresholdPowerTestType { get; } public static Foundation.NSString KeyActivityType { get; } public static Foundation.NSString MaximumLightIntensity { get; } public static Foundation.NSString PhysicalEffortEstimationType { get; } public static Foundation.NSString WaterSalinity { get; }

Type Changed: HealthKit.HKQuantityTypeIdentifier

Added values:

CyclingCadence = 103, CyclingFunctionalThresholdPower = 104, CyclingPower = 105, CyclingSpeed = 106, EnvironmentalSoundReduction = 107, PhysicalEffort = 108, TimeInDaylight = 109,

Type Changed: HealthKit.HKUnit

Added property:

public static HKUnit Lux { get; }

Added method:

public static HKUnit CreateLux (HKMetricPrefix prefix);

Type Changed: HealthKit.HKWorkoutActivityType

Added value:

Type Changed: HealthKit.HKWorkoutSession

Added property:

public virtual HKWorkoutSessionType Type { get; }

Added methods:

public virtual void SendDataToRemoteWorkoutSession (Foundation.NSData data, System.Action<System.Boolean,Foundation.NSError> completion); public virtual System.Threading.Tasks.Task<System.Tuple<System.Boolean,Foundation.NSError>> SendDataToRemoteWorkoutSessionAsync (Foundation.NSData data); public virtual void StartMirroringToCompanionDevice (System.Action<System.Boolean,Foundation.NSError> completion); public virtual System.Threading.Tasks.Task<System.Tuple<System.Boolean,Foundation.NSError>> StartMirroringToCompanionDeviceAsync (); public virtual void StopMirroringToCompanionDevice (System.Action<System.Boolean,Foundation.NSError> completion); public virtual System.Threading.Tasks.Task<System.Tuple<System.Boolean,Foundation.NSError>> StopMirroringToCompanionDeviceAsync ();

Type Changed: HealthKit.HKWorkoutSessionDelegate

Added methods:

public virtual void DidDisconnect (HKWorkoutSession workoutSession, Foundation.NSError error); public virtual void DidReceiveData (HKWorkoutSession workoutSession, Foundation.NSData[] data);

Type Changed: HealthKit.HKWorkoutSessionDelegate_Extensions

Added methods:

public static void DidDisconnect (this IHKWorkoutSessionDelegate This, HKWorkoutSession workoutSession, Foundation.NSError error); public static void DidReceiveData (this IHKWorkoutSessionDelegate This, HKWorkoutSession workoutSession, Foundation.NSData[] data);

New Type: HealthKit.HKCyclingFunctionalThresholdPowerTestType

[Serializable] public enum HKCyclingFunctionalThresholdPowerTestType { MaxExercise20Minute = 2, MaxExercise60Minute = 1, PredictionExercise = 4, RampTest = 3, }

New Type: HealthKit.HKPhysicalEffortEstimationType

[Serializable] public enum HKPhysicalEffortEstimationType { ActivityLookup = 1, DeviceSensed = 2, }

New Type: HealthKit.HKWaterSalinity

[Serializable] public enum HKWaterSalinity { FreshWater = 1, SaltWater = 2, }

New Type: HealthKit.HKWorkoutSessionType

[Serializable] public enum HKWorkoutSessionType { Mirrored = 1, Primary = 0, }

Namespace HomeKit

Type Changed: HomeKit.HMServiceTypeExtensions

Added methods:

public static Foundation.NSString[] ToArray (this HMServiceType value); public static HMServiceType ToFlags (System.Collections.Generic.IEnumerable<Foundation.NSString> constants);

Namespace ImageIO

Type Changed: ImageIO.CGImageDestinationOptions

Added property:

public Foundation.NSDictionary AvisDictionary { get; set; }

Type Changed: ImageIO.CGImageDestinationOptionsKeys

Added property:

public static Foundation.NSString AvisDictionary { get; }

Type Changed: ImageIO.CGImageProperties

Added property:

public static Foundation.NSString AvisDictionary { get; }

New Type: ImageIO.CGImageDecodeOptions

public class CGImageDecodeOptions { // constructors public CGImageDecodeOptions (); }

Namespace Intents

Type Changed: Intents.INIntentErrorCode

Added values:

NoAppIntent = 10001, UnableToCreateAppIntentRepresentation = 10000,

Type Changed: Intents.INMessage

Added constructors:

public INMessage (string identifier, string conversationIdentifier, string content, Foundation.NSDate dateSent, INPerson sender, INPerson[] recipients, INSpeakableString groupName, string serviceName, INMessageLinkMetadata linkMetadata); public INMessage (string identifier, string conversationIdentifier, string content, Foundation.NSDate dateSent, INPerson sender, INPerson[] recipients, INSpeakableString groupName, INMessageType messageType, string serviceName, INFile[] attachmentFiles); public INMessage (string identifier, string conversationIdentifier, string content, Foundation.NSDate dateSent, INPerson sender, INPerson[] recipients, INSpeakableString groupName, string serviceName, INMessageType messageType, Foundation.NSNumber numberOfAttachments);

Added properties:

public virtual INFile[] AttachmentFiles { get; } public virtual INMessageLinkMetadata LinkMetadata { get; } public virtual int NumberOfAttachments { get; }

Type Changed: Intents.INMessageType

Added value:

Type Changed: Intents.INSearchForMessagesIntentResponseCode

Added value:

FailureRequiringInAppAuthentication = 8,

Type Changed: Intents.INSendMessageIntentResponseCode

Added value:

FailureRequiringInAppAuthentication = 7,

Type Changed: Intents.INSendMessageRecipientUnsupportedReason

Added value:

RequiringInAppAuthentication = 7,

Type Changed: Intents.INStartCallContactUnsupportedReason

Added value:

RequiringInAppAuthentication = 8,

Type Changed: Intents.INStartCallIntentResponseCode

Added value:

New Type: Intents.IINEditMessageIntentHandling

public interface IINEditMessageIntentHandling : ObjCRuntime.INativeObject, System.IDisposable { // methods public abstract void HandleEditMessage (INEditMessageIntent intent, System.Action completion); }

New Type: Intents.IINUnsendMessagesIntentHandling

public interface IINUnsendMessagesIntentHandling : ObjCRuntime.INativeObject, System.IDisposable { // methods public abstract void HandleUnsendMessages (INUnsendMessagesIntent intent, System.Action completion); }

New Type: Intents.INEditMessageIntent

public class INEditMessageIntent : Intents.INIntent { // constructors public INEditMessageIntent (); public INEditMessageIntent (Foundation.NSCoder coder); protected INEditMessageIntent (Foundation.NSObjectFlag t); protected INEditMessageIntent (IntPtr handle); public INEditMessageIntent (string messageIdentifier, string editedContent); // properties public override IntPtr ClassHandle { get; } public virtual string EditedContent { get; } public virtual string MessageIdentifier { get; } }

New Type: Intents.INEditMessageIntentHandling_Extensions

public static class INEditMessageIntentHandling_Extensions { // methods public static void ConfirmEditMessage (this IINEditMessageIntentHandling This, INEditMessageIntent intent, System.Action completion); public static void ResolveEditedContent (this IINEditMessageIntentHandling This, INEditMessageIntent intent, System.Action completion); }

New Type: Intents.INEditMessageIntentResponse

public class INEditMessageIntentResponse : Intents.INIntentResponse { // constructors public INEditMessageIntentResponse (Foundation.NSCoder coder); protected INEditMessageIntentResponse (Foundation.NSObjectFlag t); protected INEditMessageIntentResponse (IntPtr handle); public INEditMessageIntentResponse (INEditMessageIntentResponseCode code, Foundation.NSUserActivity userActivity); // properties public override IntPtr ClassHandle { get; } public virtual INEditMessageIntentResponseCode Code { get; } }

New Type: Intents.INEditMessageIntentResponseCode

[Serializable] public enum INEditMessageIntentResponseCode { Failure = 4, FailureMessageNotFound = 6, FailureMessageServiceNotAvailable = 10, FailureMessageTypeUnsupported = 8, FailurePastEditTimeLimit = 7, FailureRequiringAppLaunch = 5, FailureRequiringInAppAuthentication = 11, FailureUnsupportedOnService = 9, InProgress = 2, Ready = 1, Success = 3, Unspecified = 0, }

New Type: Intents.INMessageLinkMetadata

public class INMessageLinkMetadata : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors public INMessageLinkMetadata (); public INMessageLinkMetadata (Foundation.NSCoder coder); protected INMessageLinkMetadata (Foundation.NSObjectFlag t); protected INMessageLinkMetadata (IntPtr handle); public INMessageLinkMetadata (string siteName, string summary, string title, string openGraphType, Foundation.NSUrl linkUrl); // properties public override IntPtr ClassHandle { get; } public virtual Foundation.NSUrl LinkUrl { get; set; } public virtual string OpenGraphType { get; set; } public virtual string SiteName { get; set; } public virtual string Summary { get; set; } public virtual string Title { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual void EncodeTo (Foundation.NSCoder encoder); }

New Type: Intents.INUnsendMessagesIntent

public class INUnsendMessagesIntent : Intents.INIntent { // constructors public INUnsendMessagesIntent (); public INUnsendMessagesIntent (Foundation.NSCoder coder); protected INUnsendMessagesIntent (Foundation.NSObjectFlag t); protected INUnsendMessagesIntent (IntPtr handle); public INUnsendMessagesIntent (string[] messageIdentifiers); // properties public override IntPtr ClassHandle { get; } public virtual string[] MessageIdentifiers { get; } }

New Type: Intents.INUnsendMessagesIntentHandling_Extensions

public static class INUnsendMessagesIntentHandling_Extensions { // methods public static void ConfirmUnsendMessages (this IINUnsendMessagesIntentHandling This, INUnsendMessagesIntent intent, System.Action completion); }

New Type: Intents.INUnsendMessagesIntentResponse

public class INUnsendMessagesIntentResponse : Intents.INIntentResponse { // constructors public INUnsendMessagesIntentResponse (Foundation.NSCoder coder); protected INUnsendMessagesIntentResponse (Foundation.NSObjectFlag t); protected INUnsendMessagesIntentResponse (IntPtr handle); public INUnsendMessagesIntentResponse (INUnsendMessagesIntentResponseCode code, Foundation.NSUserActivity userActivity); // properties public override IntPtr ClassHandle { get; } public virtual INUnsendMessagesIntentResponseCode Code { get; } }

New Type: Intents.INUnsendMessagesIntentResponseCode

[Serializable] public enum INUnsendMessagesIntentResponseCode { Failure = 4, FailureMessageNotFound = 6, FailureMessageServiceNotAvailable = 10, FailureMessageTypeUnsupported = 8, FailurePastUnsendTimeLimit = 7, FailureRequiringAppLaunch = 5, FailureRequiringInAppAuthentication = 11, FailureUnsupportedOnService = 9, InProgress = 2, Ready = 1, Success = 3, Unspecified = 0, }

Namespace MapKit

New Type: MapKit.MKOverlayLevel

[Serializable] public enum MKOverlayLevel { AboveLabels = 1, AboveRoads = 0, }

Namespace NaturalLanguage

New Type: NaturalLanguage.NLContextualEmbedding

public class NLContextualEmbedding : Foundation.NSObject { // constructors protected NLContextualEmbedding (Foundation.NSObjectFlag t); protected NLContextualEmbedding (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual nuint Dimension { get; } public virtual bool HasAvailableAssets { get; } public virtual string[] Languages { get; } public virtual nuint MaximumSequenceLength { get; } public virtual string ModelIdentifier { get; } public virtual nuint Revision { get; } public virtual string[] Scripts { get; } // methods public static NLContextualEmbedding[] Create (Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> values); public static NLContextualEmbedding CreateWithLanguage (string language); public static NLContextualEmbedding CreateWithModelIdentifier (string modelIdentifier); public static NLContextualEmbedding CreateWithScript (string script); public virtual NLContextualEmbeddingResult GetEmbeddingResult (string string, string language, out Foundation.NSError error); public virtual bool Load (out Foundation.NSError error); public virtual void RequestAssets (System.Action<NLContextualEmbeddingAssetsResult,Foundation.NSError> completionHandler); public virtual System.Threading.Tasks.Task RequestAssetsAsync (); public virtual void Unload (); }

New Type: NaturalLanguage.NLContextualEmbeddingAssetsResult

[Serializable] public enum NLContextualEmbeddingAssetsResult { Available = 0, Error = 2, NotAvailable = 1, }

New Type: NaturalLanguage.NLContextualEmbeddingResult

public class NLContextualEmbeddingResult : Foundation.NSObject { // constructors protected NLContextualEmbeddingResult (Foundation.NSObjectFlag t); protected NLContextualEmbeddingResult (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual string Language { get; } public virtual nuint SequenceLength { get; } public virtual string String { get; } // methods public virtual void EnumerateTokenVectors (Foundation.NSRange range, TokenVectorEnumeratorHandler enumerationHandler); public virtual nuint[] GetVector (nuint characterIndex, ref Foundation.NSRange tokenRange); }

New Type: NaturalLanguage.NLContextualEmebeddingKey

[Serializable] public enum NLContextualEmebeddingKey { Languages = 0, Revision = 2, Scripts = 1, }

New Type: NaturalLanguage.NLContextualEmebeddingKeyExtensions

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

New Type: NaturalLanguage.NLScript

[Serializable] public enum NLScript { Arabic = 1, Armenian = 2, Bengali = 3, CanadianAboriginalSyllabics = 4, Cherokee = 5, Cyrillic = 6, Devanagari = 7, Ethiopic = 8, Georgian = 9, Greek = 10, Gujarati = 11, Gurmukhi = 12, Hebrew = 13, Japanese = 14, Kannada = 15, Khmer = 16, Korean = 17, Lao = 18, Latin = 19, Malayalam = 20, Mongolian = 21, Myanmar = 22, Oriya = 23, SimplifiedChinese = 24, Sinhala = 25, Tamil = 26, Telugu = 27, Thai = 28, Tibetan = 29, TraditionalChinese = 30, Undetermined = 0, }

New Type: NaturalLanguage.NLScriptExtensions

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

New Type: NaturalLanguage.TokenVectorEnumeratorHandler

public sealed delegate TokenVectorEnumeratorHandler : System.MulticastDelegate { // constructors public TokenVectorEnumeratorHandler (object object, IntPtr method); // methods public virtual System.IAsyncResult BeginInvoke (Foundation.NSArray<Foundation.NSNumber> tokenVector, Foundation.NSRange tokenRange, out bool stop, System.AsyncCallback callback, object object); public virtual void EndInvoke (out bool stop, System.IAsyncResult result); public virtual void Invoke (Foundation.NSArray<Foundation.NSNumber> tokenVector, Foundation.NSRange tokenRange, out bool stop); }

Namespace NearbyInteraction

Type Changed: NearbyInteraction.NIDiscoveryToken

Added property:

public virtual INIDeviceCapability DeviceCapabilities { get; }

Type Changed: NearbyInteraction.NIErrorCode

Added values:

ActiveExtendedDistanceSessionsLimitExceeded = -5880, IncompatiblePeerDevice = -5881,

Type Changed: NearbyInteraction.NINearbyPeerConfiguration

Added property:

public virtual bool ExtendedDistanceMeasurementEnabled { get; set; }

New Type: NearbyInteraction.NIDeviceCapability_Extensions

public static class NIDeviceCapability_Extensions { // methods public static bool GetSupportsExtendedDistanceMeasurement (this INIDeviceCapability This); }

Namespace ObjCRuntime

Type Changed: ObjCRuntime.Constants

Modified fields:

-public const string SdkVersion = "9.4"; +public const string SdkVersion = "10.0"; -public const string Version = "16.4.0"; +public const string Version = "17.1.0";

Added field:

public static const string SymbolsLibrary = "/System/Library/Frameworks/Symbols.framework/Symbols";

Namespace PassKit

Type Changed: PassKit.PKContactFieldsExtensions

Added methods:

public static Foundation.NSString[] ToArray (this PKContactFields value); public static PKContactFields ToFlags (System.Collections.Generic.IEnumerable<Foundation.NSString> constants);

Type Changed: PassKit.PKMerchantCapability

Added value:

Type Changed: PassKit.PKPaymentNetwork

Added properties:

public static Foundation.NSString PagoBancomat { get; } public static Foundation.NSString Tmoney { get; }

Type Changed: PassKit.PKPaymentRequest

Added property:

public virtual PKApplePayLaterAvailability ApplePayLaterAvailability { get; set; }

New Type: PassKit.PKApplePayLaterAvailability

[Serializable] public enum PKApplePayLaterAvailability { Available = 0, UnavailableItemIneligible = 1, UnavailableRecurringTransaction = 2, }

Namespace SceneKit

Type Changed: SceneKit.SCNSceneRenderer

Added property:

public virtual CoreGraphics.CGColorSpace WorkingColorSpace { get; }

Type Changed: SceneKit.SCNSceneRenderer_Extensions

Added method:

public static CoreGraphics.CGColorSpace GetWorkingColorSpace (this ISCNSceneRenderer This);

Namespace Security

Type Changed: Security.SecKeyAlgorithm

Added values:

EcdsaSignatureDigestRfc4754 = 76, EcdsaSignatureDigestRfc4754Sha1 = 77, EcdsaSignatureDigestRfc4754Sha224 = 78, EcdsaSignatureDigestRfc4754Sha256 = 79, EcdsaSignatureDigestRfc4754Sha384 = 80, EcdsaSignatureDigestRfc4754Sha512 = 81, EcdsaSignatureMessageRfc4754Sha1 = 82, EcdsaSignatureMessageRfc4754Sha224 = 83, EcdsaSignatureMessageRfc4754Sha256 = 84, EcdsaSignatureMessageRfc4754Sha384 = 85, EcdsaSignatureMessageRfc4754Sha512 = 86,

Namespace ShazamKit

Type Changed: ShazamKit.SHErrorCode

Added value:

MediaItemFetchFailed = 600,

Type Changed: ShazamKit.SHMediaItem

Added property:

public virtual Foundation.NSDate CreationDate { get; }

Type Changed: ShazamKit.SHMediaItemProperty

Added value:

Namespace StoreKit

Type Changed: StoreKit.SKCloudServiceController

Added constructor:

public SKCloudServiceController ();

Namespace UIKit

Type Changed: UIKit.UIFontTextStyle

Added values:

ExtraLargeTitle = 11, ExtraLargeTitle2 = 12,

Type Changed: UIKit.UIImage

Added properties:

public Foundation.NSData HeicRepresentation { get; } public virtual UIImage ImageRestrictedToStandardDynamicRange { get; } public virtual bool IsHighDynamicRange { get; }

Type Changed: UIKit.UIImageConfiguration

Added property:

public virtual Foundation.NSLocale Locale { get; }

Added methods:

public static UIImageConfiguration CreateConfiguration (Foundation.NSLocale locale); public virtual UIImageConfiguration GetConfiguration (Foundation.NSLocale locale);

New Type: UIKit.UIAccessibilityDirectTouchOptions

[Serializable] [Flags] public enum UIAccessibilityDirectTouchOptions { None = 0, RequiresActivation = 2, SilentOnTouch = 1, }

New Type: UIKit.UIAccessibilityPriority

[Serializable] public enum UIAccessibilityPriority { Default = 1, High = 0, Low = 2, }

New Type: UIKit.UIAccessibilityPriorityExtensions

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

New Type: UIKit.UIAccessibilityTraits

[Serializable] public enum UIAccessibilityTraits { Adjustable = 14, AllowsDirectInteraction = 15, Button = 1, CausesPageTurn = 16, Header = 3, Image = 5, KeyboardKey = 8, Link = 2, None = 0, NotEnabled = 11, PlaysSound = 7, SearchField = 4, Selected = 6, StartsMediaSession = 13, StaticText = 9, SummaryElement = 10, SupportsZoom = 18, TabBar = 17, ToggleButton = 19, UpdatesFrequently = 12, }

New Type: UIKit.UIAccessibilityTraitsExtensions

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

New Type: UIKit.UIImageReader

public class UIImageReader : Foundation.NSObject { // constructors public UIImageReader (); protected UIImageReader (Foundation.NSObjectFlag t); protected UIImageReader (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual UIImageReaderConfiguration Configuration { get; } public static UIImageReader DefaultReader { get; } // methods public static UIImageReader CreateReader (UIImageReaderConfiguration configuration); public virtual UIImage GetImage (Foundation.NSData data); public virtual UIImage GetImage (Foundation.NSUrl url); public virtual void GetImage (Foundation.NSData data, System.Action completion); public virtual void GetImage (Foundation.NSUrl url, System.Action completion); public virtual System.Threading.Tasks.Task GetImageAsync (Foundation.NSData data); public virtual System.Threading.Tasks.Task GetImageAsync (Foundation.NSUrl url); }

New Type: UIKit.UIImageReaderConfiguration

public class UIImageReaderConfiguration : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors public UIImageReaderConfiguration (); protected UIImageReaderConfiguration (Foundation.NSObjectFlag t); protected UIImageReaderConfiguration (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual nfloat PixelsPerInch { get; set; } public virtual CoreGraphics.CGSize PreferredThumbnailSize { get; set; } public virtual bool PrefersHighDynamicRange { get; set; } public virtual bool PreparesImagesForDisplay { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); }

Namespace UniformTypeIdentifiers

Type Changed: UniformTypeIdentifiers.UTTypes

Added property:

public static UTType Ahap { get; }

Namespace WatchKit

Type Changed: WatchKit.WKInterfaceObject

Obsoleted properties:

[Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitAdjustable { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitAllowsDirectInteraction { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitButton { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitCausesPageTurn { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitHeader { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitImage { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitKeyboardKey { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitLink { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitNone { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitNotEnabled { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitPlaysSound { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitSearchField { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitSelected { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitStartsMediaSession { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitStaticText { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitSummaryElement { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitTabBar { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitUpdatesFrequently { get; }

Added properties:

public virtual UIKit.UIAccessibilityDirectTouchOptions AccessibilityDirectTouchOptions { get; set; } public static Foundation.NSString SpeechAttributeAnnouncementPriority { get; }

Type Changed: WatchKit.WKInterfaceSCNScene

Added property:

public virtual CoreGraphics.CGColorSpace WorkingColorSpace { get; }

New Namespace Symbols

New Type: Symbols.NSSymbolAppearEffect

public class NSSymbolAppearEffect : Symbols.NSSymbolEffect { // constructors public NSSymbolAppearEffect (Foundation.NSCoder coder); protected NSSymbolAppearEffect (Foundation.NSObjectFlag t); protected NSSymbolAppearEffect (IntPtr handle); // properties public virtual NSSymbolAppearEffect ByLayer { get; } public override IntPtr ClassHandle { get; } public virtual NSSymbolAppearEffect WholeSymbol { get; } // methods public static NSSymbolAppearEffect Create (); public static NSSymbolAppearEffect CreateAppearDownEffect (); public static NSSymbolAppearEffect CreateAppearUpEffect (); }

New Type: Symbols.NSSymbolAutomaticContentTransition

public class NSSymbolAutomaticContentTransition : Symbols.NSSymbolContentTransition { // constructors public NSSymbolAutomaticContentTransition (Foundation.NSCoder coder); protected NSSymbolAutomaticContentTransition (Foundation.NSObjectFlag t); protected NSSymbolAutomaticContentTransition (IntPtr handle); // properties public override IntPtr ClassHandle { get; } // methods public static NSSymbolAutomaticContentTransition Create (); }

New Type: Symbols.NSSymbolBounceEffect

public class NSSymbolBounceEffect : Symbols.NSSymbolEffect { // constructors public NSSymbolBounceEffect (Foundation.NSCoder coder); protected NSSymbolBounceEffect (Foundation.NSObjectFlag t); protected NSSymbolBounceEffect (IntPtr handle); // properties public virtual NSSymbolBounceEffect ByLayer { get; } public override IntPtr ClassHandle { get; } public virtual NSSymbolBounceEffect WholeSymbol { get; } // methods public static NSSymbolBounceEffect Create (); public static NSSymbolBounceEffect CreateBounceDownEffect (); public static NSSymbolBounceEffect CreateBounceUpEffect (); }

New Type: Symbols.NSSymbolContentTransition

public class NSSymbolContentTransition : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors public NSSymbolContentTransition (Foundation.NSCoder coder); protected NSSymbolContentTransition (Foundation.NSObjectFlag t); protected NSSymbolContentTransition (IntPtr handle); // properties public override IntPtr ClassHandle { get; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual void EncodeTo (Foundation.NSCoder encoder); }

New Type: Symbols.NSSymbolDisappearEffect

public class NSSymbolDisappearEffect : Symbols.NSSymbolEffect { // constructors public NSSymbolDisappearEffect (Foundation.NSCoder coder); protected NSSymbolDisappearEffect (Foundation.NSObjectFlag t); protected NSSymbolDisappearEffect (IntPtr handle); // properties public virtual NSSymbolDisappearEffect ByLayer { get; } public override IntPtr ClassHandle { get; } public virtual NSSymbolDisappearEffect WholeSymbol { get; } // methods public static NSSymbolDisappearEffect Create (); public static NSSymbolDisappearEffect CreateDisappearDownEffect (); public static NSSymbolDisappearEffect CreateDisappearUpEffect (); }

New Type: Symbols.NSSymbolEffect

public class NSSymbolEffect : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors public NSSymbolEffect (Foundation.NSCoder coder); protected NSSymbolEffect (Foundation.NSObjectFlag t); protected NSSymbolEffect (IntPtr handle); // properties public override IntPtr ClassHandle { get; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual void EncodeTo (Foundation.NSCoder encoder); }

New Type: Symbols.NSSymbolEffectOptions

public class NSSymbolEffectOptions : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors public NSSymbolEffectOptions (Foundation.NSCoder coder); protected NSSymbolEffectOptions (Foundation.NSObjectFlag t); protected NSSymbolEffectOptions (IntPtr handle); // properties public override IntPtr ClassHandle { get; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public static NSSymbolEffectOptions Create (); public static NSSymbolEffectOptions Create (double speed); public static NSSymbolEffectOptions Create (nint repeatCount); public static NSSymbolEffectOptions CreateNonRepeating (); public static NSSymbolEffectOptions CreateRepeating (); public virtual void EncodeTo (Foundation.NSCoder encoder); public virtual NSSymbolEffectOptions Get (double speed); public virtual NSSymbolEffectOptions Get (nint repeatCount); public virtual NSSymbolEffectOptions GetNonRepeating (); public virtual NSSymbolEffectOptions GetRepeating (); }

New Type: Symbols.NSSymbolPulseEffect

public class NSSymbolPulseEffect : Symbols.NSSymbolEffect { // constructors public NSSymbolPulseEffect (Foundation.NSCoder coder); protected NSSymbolPulseEffect (Foundation.NSObjectFlag t); protected NSSymbolPulseEffect (IntPtr handle); // properties public virtual NSSymbolPulseEffect ByLayer { get; } public override IntPtr ClassHandle { get; } public virtual NSSymbolPulseEffect WholeSymbol { get; } // methods public static NSSymbolPulseEffect Create (); }

New Type: Symbols.NSSymbolReplaceContentTransition

public class NSSymbolReplaceContentTransition : Symbols.NSSymbolContentTransition { // constructors public NSSymbolReplaceContentTransition (Foundation.NSCoder coder); protected NSSymbolReplaceContentTransition (Foundation.NSObjectFlag t); protected NSSymbolReplaceContentTransition (IntPtr handle); // properties public virtual NSSymbolReplaceContentTransition ByLayer { get; } public override IntPtr ClassHandle { get; } public virtual NSSymbolReplaceContentTransition WholeSymbol { get; } // methods public static NSSymbolReplaceContentTransition Create (); public static NSSymbolReplaceContentTransition CreateReplaceDownUpTransition (); public static NSSymbolReplaceContentTransition CreateReplaceOffUpTransition (); public static NSSymbolReplaceContentTransition CreateReplaceUpUpTransition (); }

New Type: Symbols.NSSymbolScaleEffect

public class NSSymbolScaleEffect : Symbols.NSSymbolEffect { // constructors public NSSymbolScaleEffect (Foundation.NSCoder coder); protected NSSymbolScaleEffect (Foundation.NSObjectFlag t); protected NSSymbolScaleEffect (IntPtr handle); // properties public virtual NSSymbolScaleEffect ByLayer { get; } public override IntPtr ClassHandle { get; } public virtual NSSymbolScaleEffect WholeSymbol { get; } // methods public static NSSymbolScaleEffect Create (); public static NSSymbolScaleEffect CreateScaleDownEffect (); public static NSSymbolScaleEffect CreateScaleUpEffect (); }

New Type: Symbols.NSSymbolVariableColorEffect

public class NSSymbolVariableColorEffect : Symbols.NSSymbolEffect { // constructors public NSSymbolVariableColorEffect (Foundation.NSCoder coder); protected NSSymbolVariableColorEffect (Foundation.NSObjectFlag t); protected NSSymbolVariableColorEffect (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual NSSymbolVariableColorEffect Cumulative { get; } public virtual NSSymbolVariableColorEffect DimInactiveLayers { get; } public virtual NSSymbolVariableColorEffect HideInactiveLayers { get; } public virtual NSSymbolVariableColorEffect Iterative { get; } public virtual NSSymbolVariableColorEffect NonReversing { get; } public virtual NSSymbolVariableColorEffect Reversing { get; } // methods public static NSSymbolVariableColorEffect Create (); }