--- title: "Xamarin.iOS SDK API diff: 16.1.1 vs 16.5.0" description: List of API changes between Xamarin.iOS versions 16.1.1 and 16.5.0. author: spouliot ms.author: sepoulio ms.date: 5/11/2023 ms.topic: article ms.assetid: e2eb9a7d-df4e-5efe-ca65-24acddcf3c4e ms.prod: xamarin --- # Xamarin.iOS SDK API diff: 16.1.1 vs 16.5.0 <a name="Xamarin.iOS.dll" /> ## Xamarin.iOS.dll ### Namespace AVFoundation #### Type Changed: AVFoundation.AVAssetWriter Obsoleted properties: ```diff [Obsolete ("Use the 'Inputs' property instead.")] public virtual AVAssetWriterInput[] inputs { get; } ``` Added property: ```csharp public virtual AVAssetWriterInput[] Inputs { get; } ``` #### Type Changed: AVFoundation.AVAudioSession Obsoleted properties: ```diff [Obsolete ("Use 'AVAudioSessionCategory' enum values instead.")] public static Foundation.NSString CategoryAmbient { get; } [Obsolete ("Use 'AVAudioSessionCategory' enum values instead.")] public static Foundation.NSString CategoryAudioProcessing { 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: ```csharp 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: ```diff [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: ```csharp public AVAudioSinkNode (AVAudioSinkNodeReceiverHandler2 receiverHandler); public AVAudioSinkNode (AVAudioSinkNodeReceiverHandlerRaw receiverHandler); ``` #### Type Changed: AVFoundation.AVCaptureDeviceFormat Obsoleted properties: ```diff [Obsolete ("Use the 'IsVideoHdrSupported' property instead.")] public virtual bool videoHDRSupportedVideoHDREnabled { get; } ``` Added properties: ```csharp public virtual bool IsVideoHdrSupported { get; } public virtual nfloat[] SecondaryNativeResolutionZoomFactors { get; } public virtual CoreMedia.CMVideoDimensions[] SupportedMaxPhotoDimensions { get; } public virtual nfloat[] SupportedVideoZoomFactorsForDepthDataDelivery { get; } ``` #### Type Changed: AVFoundation.AVCapturePhotoOutput Added properties: ```csharp public virtual CoreMedia.CMVideoDimensions MaxPhotoDimensions { get; set; } public virtual bool PreservesLivePhotoCaptureSuspendedOnSessionStop { get; set; } ``` #### Type Changed: AVFoundation.AVCapturePhotoSettings Added property: ```csharp public virtual CoreMedia.CMVideoDimensions MaxPhotoDimensions { get; set; } ``` #### Type Changed: AVFoundation.AVCaptureSession Added properties: ```csharp public virtual float HardwareCost { get; } public virtual bool MultitaskingCameraAccessEnabled { get; set; } public virtual bool MultitaskingCameraAccessSupported { get; } ``` #### Type Changed: AVFoundation.AVMetadata Obsoleted properties: ```diff [Obsolete ("Use 'AVMetadataFormat' enum values.")] public static Foundation.NSString FormatHlsMetadata { get; } [Obsolete ("Use 'AVMetadataFormat' enum values.")] public static Foundation.NSString FormatID3Metadata { get; } [Obsolete ("Use 'AVMetadataFormat' enum values.")] public static Foundation.NSString FormatQuickTimeUserData { get; } [Obsolete ("Use 'AVMetadataFormat' enum values.")] public static Foundation.NSString FormatiTunesMetadata { get; } [Obsolete ("Use 'AVMetadataFormat' enum values.")] public static Foundation.NSString KFormatISOUserData { get; } ``` #### Type Changed: AVFoundation.AVPlayer Obsoleted properties: ```diff [Obsolete ("Use 'AVPlayerWaitingReason' enum instead.")] public static Foundation.NSString AVPlayerWaitingForCoordinatedPlaybackReason { get; } [Obsolete ("Use 'AVPlayerWaitingReason' enum instead.")] public static Foundation.NSString WaitingDuringInterstitialEventReason { get; } [Obsolete ("Use 'AVPlayerWaitingReason' enum instead.")] public static Foundation.NSString WaitingToMinimizeStallsReason { get; } [Obsolete ("Use 'AVPlayerWaitingReason' enum instead.")] public static Foundation.NSString WaitingWhileEvaluatingBufferingRateReason { get; } [Obsolete ("Use 'AVPlayerWaitingReason' enum instead.")] public static Foundation.NSString WaitingWithNoItemToPlayReason { get; } ``` #### New Type: AVFoundation.AVAudioSessionCategoryExtensions ```csharp public static class AVAudioSessionCategoryExtensions { // methods public static Foundation.NSString GetConstant (this AVAudioSessionCategory self); public static AVAudioSessionCategory GetValue (Foundation.NSString constant); } ``` #### New Type: AVFoundation.AVAudioSessionMode ```csharp [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 ```csharp public static class AVAudioSessionModeExtensions { // methods public static Foundation.NSString GetConstant (this AVAudioSessionMode self); public static AVAudioSessionMode GetValue (Foundation.NSString constant); } ``` #### New Type: AVFoundation.AVAudioSinkNodeReceiverHandler2 ```csharp 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 ```csharp 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 AVRouting #### Type Changed: AVRouting.AVCustomRoutingController Added property: ```csharp public virtual AVCustomRoutingPartialIP[] KnownRouteIPs { get; set; } ``` #### New Type: AVRouting.AVCustomRoutingPartialIP ```csharp public class AVCustomRoutingPartialIP : Foundation.NSObject { // constructors protected AVCustomRoutingPartialIP (Foundation.NSObjectFlag t); protected AVCustomRoutingPartialIP (IntPtr handle); public AVCustomRoutingPartialIP (Foundation.NSData address, Foundation.NSData mask); // properties public virtual Foundation.NSData Address { get; } public override IntPtr ClassHandle { get; } public virtual Foundation.NSData Mask { get; } } ``` ### Namespace BackgroundAssets #### Type Changed: BackgroundAssets.BAAppExtensionInfo Added property: ```csharp public virtual Foundation.NSNumber RestrictedEssentialDownloadSizeRemaining { get; } ``` #### Type Changed: BackgroundAssets.BADownload Added property: ```csharp public virtual bool IsEssential { get; } ``` Added method: ```csharp public virtual BADownload CopyAsNonEssential (); ``` #### Type Changed: BackgroundAssets.BADownloadManager Added method: ```csharp public virtual BADownload[] FetchCurrentDownloads (out Foundation.NSError error); ``` #### Type Changed: BackgroundAssets.BAUrlDownload Added constructors: ```csharp public BAUrlDownload (string identifier, Foundation.NSUrlRequest request, nuint fileSize, string applicationGroupIdentifier); public BAUrlDownload (string identifier, Foundation.NSUrlRequest request, bool essential, nuint fileSize, string applicationGroupIdentifier, nint priority); ``` ### Namespace CarPlay #### Type Changed: CarPlay.CPInformationTemplate Added interfaces: ```csharp ICPBarButtonProviding ObjCRuntime.INativeObject System.IDisposable ``` Added properties: ```csharp public virtual CPBarButton BackButton { get; set; } public virtual CPBarButton[] LeadingNavigationBarButtons { get; set; } public virtual CPBarButton[] TrailingNavigationBarButtons { get; set; } ``` ### Namespace CoreAnimation #### Type Changed: CoreAnimation.CAAnimation Obsoleted properties: ```diff [Obsolete ("The name has been fixed, use 'AnimationDiscrete' instead.")] public static Foundation.NSString AnimationDescrete { get; } ``` #### Type Changed: CoreAnimation.CAGradientLayer Obsoleted properties: ```diff [Obsolete ("Use 'CAGradientLayerType.Axial' enum instead.")] public static Foundation.NSString GradientLayerAxial { get; } ``` #### Type Changed: CoreAnimation.CAMetalLayer Added properties: ```csharp public virtual Foundation.NSDictionary DeveloperHudProperties { get; set; } public virtual CAEdrMetadata EdrMetadata { get; set; } public virtual bool WantsExtendedDynamicRangeContent { get; set; } ``` #### New Type: CoreAnimation.CAEdrMetadata ```csharp public class CAEdrMetadata : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors public CAEdrMetadata (Foundation.NSCoder coder); protected CAEdrMetadata (Foundation.NSObjectFlag t); protected CAEdrMetadata (IntPtr handle); // properties public static bool Available { get; } public override IntPtr ClassHandle { get; } public static CAEdrMetadata HlgMetadata { get; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual void EncodeTo (Foundation.NSCoder encoder); public static CAEdrMetadata GetHdr10Metadata (Foundation.NSData displayData, Foundation.NSData contentData, float scale); public static CAEdrMetadata GetHdr10Metadata (float minNits, float maxNits, float scale); } ``` ### Namespace CoreBluetooth #### Type Changed: CoreBluetooth.CBCentralManager Obsoleted properties: ```diff [Obsolete ("Use 'CBConnectPeripheralOptions' instead.")] public static Foundation.NSString OptionNotifyOnConnectionKey { get; } [Obsolete ("Use 'CBConnectPeripheralOptions' instead.")] public static Foundation.NSString OptionNotifyOnDisconnectionKey { get; } [Obsolete ("Use 'CBConnectPeripheralOptions' instead.")] public static Foundation.NSString OptionNotifyOnNotificationKey { get; } ``` ### Namespace CoreData #### Type Changed: CoreData.NSPersistentStoreCoordinator Obsoleted properties: ```diff [Obsolete ("Use 'UbiquitousContainerIdentifierKey' instead.")] public static Foundation.NSString eUbiquitousContainerIdentifierKey { get; } ``` ### Namespace CoreFoundation #### Type Changed: CoreFoundation.CFSocket Added properties: ```csharp public System.Net.IPEndPoint Address { get; } public System.Net.IPEndPoint RemoteAddress { get; } ``` Added method: ```csharp public void Invalidate (); ``` ### Namespace CoreGraphics #### Type Changed: CoreGraphics.CGImagePropertiesGps Added properties: ```csharp public string LatitudeRef { get; set; } public string LongitudeRef { get; set; } ``` ### Namespace CoreLocation #### Type Changed: CoreLocation.CLLocationPushServiceError Added value: ```csharp UnsupportedPlatform = 4, ``` ### Namespace FileProvider #### Type Changed: FileProvider.NSFileProviderDomain Added property: ```csharp public virtual Foundation.NSUuid VolumeUuid { get; } ``` ### Namespace Foundation #### Type Changed: Foundation.NSAttributedString Obsoleted methods: ```diff [Obsolete ("Use 'GetData' instead.")] public NSData GetDataFromRange (NSRange range, NSAttributedStringDocumentAttributes documentAttributes, ref NSError error); [Obsolete ("Use 'GetData' instead.")] public virtual NSData GetDataFromRange (NSRange range, NSDictionary attributes, ref NSError error); [Obsolete ("Use 'GetFileWrapper' instead.")] public NSFileWrapper GetFileWrapperFromRange (NSRange range, NSAttributedStringDocumentAttributes documentAttributes, ref NSError error); [Obsolete ("Use 'GetFileWrapper' instead.")] public virtual NSFileWrapper GetFileWrapperFromRange (NSRange range, NSDictionary attributes, ref NSError error); ``` Added methods: ```csharp public NSData GetData (NSRange range, NSAttributedStringDocumentAttributes options, out NSError error); public NSData GetData (NSRange range, NSDictionary options, out NSError error); public NSFileWrapper GetFileWrapper (NSRange range, NSAttributedStringDocumentAttributes options, out NSError error); public NSFileWrapper GetFileWrapper (NSRange range, NSDictionary options, out NSError error); ``` #### Type Changed: Foundation.NSBundle Obsoleted properties: ```diff [Obsolete ("Use the 'AllBundles' property instead.")] public static NSBundle[] _AllBundles { get; } ``` Added property: ```csharp public static NSBundle[] AllBundles { get; } ``` #### Type Changed: Foundation.NSKeyValueObservingOptions Added value: ```csharp None = 0, ``` #### Type Changed: Foundation.NSOperatingSystemVersion Added constructors: ```csharp public NSOperatingSystemVersion (nint major); public NSOperatingSystemVersion (nint major, nint minor); ``` Added interfaces: ```csharp System.IComparable System.IEquatable<NSOperatingSystemVersion> ``` Added methods: ```csharp public int CompareTo (NSOperatingSystemVersion otherVersion); public virtual int CompareTo (object obj); public virtual bool Equals (NSOperatingSystemVersion other); public override bool Equals (object obj); public override int GetHashCode (); public static bool op_Equality (NSOperatingSystemVersion os1, NSOperatingSystemVersion os2); public static bool op_Inequality (NSOperatingSystemVersion os1, NSOperatingSystemVersion os2); ``` #### Type Changed: Foundation.NSRunLoop Obsoleted properties: ```diff [Obsolete ("Use the 'NSRunLoopMode' enum instead.")] public static NSString NSDefaultRunLoopMode { get; } [Obsolete ("Use the 'NSRunLoopMode' enum instead.")] public static NSString NSRunLoopCommonModes { get; } [Obsolete ("Use the 'NSRunLoopMode' enum instead.")] public static NSString UITrackingRunLoopMode { get; } ``` #### Type Changed: Foundation.NSUrl Added properties: ```csharp public static NSString FileIdentifierKey { get; } public static NSString VolumeMountFromLocationKey { get; } public static NSString VolumeSubtypeKey { get; } public static NSString VolumeTypeNameKey { get; } ``` Added methods: ```csharp public static NSUrl CreateFileUrl (string path); public static NSUrl CreateFileUrl (string path, bool isDir); ``` #### Type Changed: Foundation.NSValue Added property: ```csharp public virtual CoreMedia.CMVideoDimensions CMVideoDimensionsValue { get; } ``` Added method: ```csharp public static NSValue FromCMVideoDimensions (CoreMedia.CMVideoDimensions value); ``` #### Type Changed: Foundation.NSValueTransformer Obsoleted properties: ```diff [Obsolete ("Use 'NSUserDefaults.CompletedInitialSyncNotification' instead.")] public static NSString CompletedInitialSyncNotification { get; } [Obsolete ("Use 'NSUserDefaults.DidChangeAccountsNotification' instead.")] public static NSString DidChangeAccountsNotification { get; } [Obsolete ("Use 'NSUserDefaults.SizeLimitExceededNotification' instead.")] public static NSString SizeLimitExceededNotification { get; } [Obsolete ("Use 'NSUserDefaults.DidChangeNotification' instead.")] public static NSString UserDefaultsDidChangeNotification { get; } ``` ### Namespace GameKit #### Type Changed: GameKit.GKMatchmaker Added methods: ```csharp public virtual void StartGroupActivity (System.Action<GKPlayer> handler); public virtual void StopGroupActivity (); ``` ### Namespace HealthKit #### Type Changed: HealthKit.HKClinicalTypeIdentifier Added value: ```csharp ClinicalNoteRecord = 8, ``` #### Type Changed: HealthKit.HKContactsPrescription Added interfaces: ```csharp Foundation.INSCoding Foundation.INSCopying Foundation.INSSecureCoding ObjCRuntime.INativeObject System.IDisposable ``` Added methods: ```csharp public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual void EncodeTo (Foundation.NSCoder encoder); ``` #### Type Changed: HealthKit.HKFhirResourceType Added values: ```csharp DiagnosticReport = 10, DocumentReference = 11, ``` #### Type Changed: HealthKit.HKGlassesPrescription Added interfaces: ```csharp Foundation.INSCoding Foundation.INSCopying Foundation.INSSecureCoding ObjCRuntime.INativeObject System.IDisposable ``` Added methods: ```csharp public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual void EncodeTo (Foundation.NSCoder encoder); ``` #### Type Changed: HealthKit.HKMetadataKey Added property: ```csharp public static Foundation.NSString HeadphoneGain { get; } ``` #### Type Changed: HealthKit.HKVisionPrescription Added interfaces: ```csharp Foundation.INSCoding Foundation.INSCopying Foundation.INSSecureCoding ObjCRuntime.INativeObject System.IDisposable ``` Added methods: ```csharp public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual void EncodeTo (Foundation.NSCoder encoder); ``` #### Type Changed: HealthKit.HKWorkoutActivity Added constructor: ```csharp public HKWorkoutActivity (Foundation.NSCoder coder); ``` Added interfaces: ```csharp Foundation.INSCoding Foundation.INSCopying Foundation.INSSecureCoding ObjCRuntime.INativeObject System.IDisposable ``` Added methods: ```csharp public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual void EncodeTo (Foundation.NSCoder encoder); ``` ### Namespace HomeKit #### Type Changed: HomeKit.HMTimerTrigger Added constructor: ```csharp public HMTimerTrigger (string name, Foundation.NSDate fireDate, Foundation.NSDateComponents recurrence); ``` ### Namespace ImageIO #### Type Changed: ImageIO.CGImageProperties Added property: ```csharp public static Foundation.NSString OpenExrCompression { get; } ``` ### Namespace Intents #### Type Changed: Intents.INIntentIdentifier Added values: ```csharp AnswerCall = 26, HangUpCall = 27, ``` #### New Type: Intents.IINAnswerCallIntentHandling ```csharp public interface IINAnswerCallIntentHandling : ObjCRuntime.INativeObject, System.IDisposable { // methods public virtual void HandleAnswerCall (INAnswerCallIntent intent, System.Action<INAnswerCallIntentResponse> completion); } ``` #### New Type: Intents.IINHangUpCallIntentHandling ```csharp public interface IINHangUpCallIntentHandling : ObjCRuntime.INativeObject, System.IDisposable { // methods public virtual void HandleHangUpCall (INHangUpCallIntent intent, System.Action<INHangUpCallIntentResponse> completion); } ``` #### New Type: Intents.INAnswerCallIntent ```csharp public class INAnswerCallIntent : Intents.INIntent { // constructors public INAnswerCallIntent (); public INAnswerCallIntent (Foundation.NSCoder coder); protected INAnswerCallIntent (Foundation.NSObjectFlag t); protected INAnswerCallIntent (IntPtr handle); public INAnswerCallIntent (INCallAudioRoute audioRoute, string callIdentifier); // properties public virtual INCallAudioRoute AudioRoute { get; } public virtual string CallIdentifier { get; } public override IntPtr ClassHandle { get; } } ``` #### New Type: Intents.INAnswerCallIntentHandling_Extensions ```csharp public static class INAnswerCallIntentHandling_Extensions { // methods public static void ConfirmAnswerCall (this IINAnswerCallIntentHandling This, INAnswerCallIntent intent, System.Action<INAnswerCallIntentResponse> completion); } ``` #### New Type: Intents.INAnswerCallIntentResponse ```csharp public class INAnswerCallIntentResponse : Intents.INIntentResponse { // constructors public INAnswerCallIntentResponse (Foundation.NSCoder coder); protected INAnswerCallIntentResponse (Foundation.NSObjectFlag t); protected INAnswerCallIntentResponse (IntPtr handle); public INAnswerCallIntentResponse (INAnswerCallIntentResponseCode code, Foundation.NSUserActivity userActivity); // properties public virtual INCallRecord[] CallRecords { get; set; } public override IntPtr ClassHandle { get; } public virtual INAnswerCallIntentResponseCode Code { get; } } ``` #### New Type: Intents.INAnswerCallIntentResponseCode ```csharp [Serializable] public enum INAnswerCallIntentResponseCode { ContinueInApp = 2, Failure = 5, FailureRequiringAppLaunch = 6, InProgress = 3, Ready = 1, Success = 4, Unspecified = 0, } ``` #### New Type: Intents.INHangUpCallIntent ```csharp public class INHangUpCallIntent : Intents.INIntent { // constructors public INHangUpCallIntent (); public INHangUpCallIntent (Foundation.NSCoder coder); protected INHangUpCallIntent (Foundation.NSObjectFlag t); protected INHangUpCallIntent (IntPtr handle); public INHangUpCallIntent (string callIdentifier); // properties public virtual string CallIdentifier { get; } public override IntPtr ClassHandle { get; } } ``` #### New Type: Intents.INHangUpCallIntentHandling_Extensions ```csharp public static class INHangUpCallIntentHandling_Extensions { // methods public static void ConfirmHangUpCall (this IINHangUpCallIntentHandling This, INHangUpCallIntent intent, System.Action<INHangUpCallIntentResponse> completion); } ``` #### New Type: Intents.INHangUpCallIntentResponse ```csharp public class INHangUpCallIntentResponse : Intents.INIntentResponse { // constructors public INHangUpCallIntentResponse (Foundation.NSCoder coder); protected INHangUpCallIntentResponse (Foundation.NSObjectFlag t); protected INHangUpCallIntentResponse (IntPtr handle); public INHangUpCallIntentResponse (INHangUpCallIntentResponseCode code, Foundation.NSUserActivity userActivity); // properties public override IntPtr ClassHandle { get; } public virtual INHangUpCallIntentResponseCode Code { get; } } ``` #### New Type: Intents.INHangUpCallIntentResponseCode ```csharp [Serializable] public enum INHangUpCallIntentResponseCode { Failure = 4, FailureNoCallToHangUp = 6, FailureRequiringAppLaunch = 5, InProgress = 2, Ready = 1, Success = 3, Unspecified = 0, } ``` ### Namespace JavaScriptCore #### Type Changed: JavaScriptCore.JSContext Added property: ```csharp public virtual bool Inspectable { get; set; } ``` ### Namespace MapKit #### Type Changed: MapKit.MKOverlayRenderer Added method: ```csharp public static nfloat MKRoadWidthAtZoomScale (nfloat zoomScale); ``` #### Type Changed: MapKit.MKOverlayView Obsoleted methods: ```diff [Obsolete ("Use 'MKOverlayRenderer.MKRoadWidthAtZoomScale' instead.")] public static nfloat MKRoadWidthAtZoomScale (nfloat zoomScale); ``` #### Type Changed: MapKit.MKReverseGeocoder Obsoleted properties: ```diff [Obsolete ("Use the 'Coordinate' property instead.")] public virtual CoreLocation.CLLocationCoordinate2D coordinate { get; } ``` Added property: ```csharp public virtual CoreLocation.CLLocationCoordinate2D Coordinate { get; } ``` ### Namespace MediaAccessibility #### New Type: MediaAccessibility.MAVideoAccommodations ```csharp public static class MAVideoAccommodations { // properties public static Foundation.NSString DimFlashingLightsChangedNotification { get; } // methods public static bool IsDimFlashingLightsEnabled (); // inner types public static class Notifications { // methods public static Foundation.NSObject ObserveDimFlashingLightsChanged (System.EventHandler<Foundation.NSNotificationEventArgs> handler); public static Foundation.NSObject ObserveDimFlashingLightsChanged (Foundation.NSObject objectToObserve, System.EventHandler<Foundation.NSNotificationEventArgs> handler); } } ``` ### Namespace Metal #### Type Changed: Metal.IMTLRenderCommandEncoder_Extensions Added methods: ```csharp public static void SetScissorRects (this IMTLRenderCommandEncoder This, MTLScissorRect[] scissorRects); public static void SetViewports (this IMTLRenderCommandEncoder This, MTLViewport[] viewports); ``` ### Namespace MetalKit #### Type Changed: MetalKit.MTKTextureLoaderOptions Modified properties: ```diff -public bool? GenerateMipmaps { get; set; } +public bool? GenerateMipmaps { get; } ``` ### Namespace Network #### Type Changed: Network.NWDataTransferReport Obsoleted methods: ```diff [Obsolete ("Use the 'GetPathRadioType' property instead.")] public NWInterfaceRadioType get_path_radio_type (uint pathIndex); ``` Added method: ```csharp public NWInterfaceRadioType GetPathRadioType (uint pathIndex); ``` #### Type Changed: Network.NWQuicStreamType Added value: ```csharp Datagram = 3, ``` ### Namespace NetworkExtension #### Type Changed: NetworkExtension.NEAppPushProvider Added method: ```csharp public virtual void ReportPushToTalkMessage (Foundation.NSDictionary userInfo); ``` #### Type Changed: NetworkExtension.NEVpnProtocol Added properties: ```csharp public virtual bool ExcludeApns { get; set; } public virtual bool ExcludeCellularServices { get; set; } ``` ### Namespace ObjCRuntime #### Type Changed: ObjCRuntime.BlockLiteral Added interface: ```csharp System.IDisposable ``` Added property: ```csharp public object Context { get; } ``` Added method: ```csharp public virtual void Dispose (); ``` #### Type Changed: ObjCRuntime.Constants Modified fields: ```diff -public const string SdkVersion = "16.1"; +public const string SdkVersion = "16.4"; -public const string Version = "16.1.1"; +public const string Version = "16.5.0"; ``` ### Namespace PassKit #### Type Changed: PassKit.PKAddPassesViewController Added constructor: ```csharp public PKAddPassesViewController (Foundation.NSData issuerData, Foundation.NSData signature, out Foundation.NSError error); ``` #### Type Changed: PassKit.PKPaymentNetwork Added property: ```csharp public static Foundation.NSString PKPaymentNetworkPostFinance { get; } ``` #### Type Changed: PassKit.PKPaymentRequest Added property: ```csharp public virtual PKDeferredPaymentRequest DeferredPaymentRequest { get; set; } ``` #### Type Changed: PassKit.PKPaymentRequestUpdate Added property: ```csharp public virtual PKDeferredPaymentRequest DeferredPaymentRequest { get; set; } ``` #### New Type: PassKit.PKDeferredPaymentRequest ```csharp public class PKDeferredPaymentRequest : Foundation.NSObject { // constructors protected PKDeferredPaymentRequest (Foundation.NSObjectFlag t); protected PKDeferredPaymentRequest (IntPtr handle); public PKDeferredPaymentRequest (string paymentDescription, PKDeferredPaymentSummaryItem deferredBilling, Foundation.NSUrl managementUrl); // properties public virtual string BillingAgreement { get; set; } public override IntPtr ClassHandle { get; } public virtual PKDeferredPaymentSummaryItem DeferredBilling { get; set; } public virtual Foundation.NSDate FreeCancellationDate { get; set; } public virtual Foundation.NSTimeZone FreeCancellationDateTimeZone { get; set; } public virtual Foundation.NSUrl ManagementUrl { get; set; } public virtual string PaymentDescription { get; set; } public virtual Foundation.NSUrl TokenNotificationUrl { get; set; } } ``` ### Namespace PdfKit #### Type Changed: PdfKit.PdfDocumentWriteOptions Added properties: ```csharp public bool? BurnInAnnotations { get; set; } public bool? OptimizeImagesForScreen { get; set; } public bool? SaveImagesAsJpeg { get; set; } public bool? SaveTextFromOcr { get; set; } ``` ### Namespace PencilKit #### Type Changed: PencilKit.PKEraserTool Added constructor: ```csharp public PKEraserTool (PKEraserType eraserType, nfloat width); ``` Added property: ```csharp public virtual nfloat Width { get; } ``` Added methods: ```csharp public static nfloat GetDefaultWidth (PKEraserType eraserType); public static nfloat GetMaximumWidth (PKEraserType eraserType); public static nfloat GetMinimumWidth (PKEraserType eraserType); ``` #### Type Changed: PencilKit.PKEraserType Added value: ```csharp FixedWidthBitmap = 2, ``` ### Namespace Photos #### Type Changed: Photos.PHFetchResult Obsoleted properties: ```diff [Obsolete ("Use the 'FirstObject' property instead.")] public virtual Foundation.NSObject firstObject { get; } ``` Added property: ```csharp public virtual Foundation.NSObject FirstObject { get; } ``` ### Namespace SceneKit #### Type Changed: SceneKit.SCNHitTest Obsoleted properties: ```diff [Obsolete ("Use 'SearchModeKey' instead.")] public static Foundation.NSString OptionSearchModeKey { get; } ``` ### Namespace SensorKit #### Type Changed: SensorKit.SRApplicationUsage Added properties: ```csharp public virtual double RelativeStartTime { get; } public virtual SRSupplementalCategory[] SupplementalCategories { get; } ``` #### Type Changed: SensorKit.SRDeviceUsageReport Added property: ```csharp public virtual string Version { get; } ``` #### Type Changed: SensorKit.SRKeyboardMetrics Added properties: ```csharp public virtual SensorKit.SRKeyboardProbabilityMetric<Foundation.NSUnitDuration>[] LongWordTouchUpDown { get; } public virtual string[] SessionIdentifiers { get; } public virtual SensorKit.SRKeyboardProbabilityMetric<Foundation.NSUnitDuration> TouchUpDown { get; } ``` #### Type Changed: SensorKit.SRSensor Added value: ```csharp MediaEvents = 13, ``` #### Type Changed: SensorKit.SRTextInputSession Added property: ```csharp public virtual string SessionIdentifier { get; } ``` #### Type Changed: SensorKit.SRWristDetection Added properties: ```csharp public virtual Foundation.NSDate OffWristDate { get; } public virtual Foundation.NSDate OnWristDate { get; } ``` #### New Type: SensorKit.SRMediaEvent ```csharp public class SRMediaEvent : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors public SRMediaEvent (); public SRMediaEvent (Foundation.NSCoder coder); protected SRMediaEvent (Foundation.NSObjectFlag t); protected SRMediaEvent (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual SRMediaEventType EventType { get; } public virtual string MediaIdentifier { get; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual void EncodeTo (Foundation.NSCoder encoder); } ``` #### New Type: SensorKit.SRMediaEventType ```csharp [Serializable] public enum SRMediaEventType { OffScreen = 2, OnScreen = 1, } ``` #### New Type: SensorKit.SRSupplementalCategory ```csharp public class SRSupplementalCategory : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors public SRSupplementalCategory (Foundation.NSCoder coder); protected SRSupplementalCategory (Foundation.NSObjectFlag t); protected SRSupplementalCategory (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual SRDeviceUsageCategory Identifier { get; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual void EncodeTo (Foundation.NSCoder encoder); } ``` ### Namespace StoreKit #### Type Changed: StoreKit.StoreProductParameters Modified properties: ```diff -public string AdNetworkSourceAppStoreIdentifier { get; set; } +public string AdNetworkSourceAppStoreIdentifier { get; } -public string AdNetworkVersion { get; set; } +public string AdNetworkVersion { get; } -public string ProductIdentifier { get; set; } +public string ProductIdentifier { get; } -public string ProviderToken { get; set; } +public string ProviderToken { get; } ``` ### Namespace System.Net.Http #### Type Changed: System.Net.Http.NSUrlSessionHandler Obsoleted properties: ```diff [Obsolete ("This property will be ignored in .NET 8.")] public bool BypassBackgroundSessionCheck { get; set; } ``` ### Namespace ThreadNetwork #### Type Changed: ThreadNetwork.THClient Added methods: ```csharp public virtual void IsPreferredNetworkAvailable (System.Action<bool> completion); public virtual System.Threading.Tasks.Task<bool> IsPreferredNetworkAvailableAsync (); public virtual void RetrieveAllActiveCredentials (System.Action<Foundation.NSSet<THCredentials>> completion); public virtual System.Threading.Tasks.Task<Foundation.NSSet<THCredentials>> RetrieveAllActiveCredentialsAsync (); ``` ### Namespace UIKit #### Type Changed: UIKit.NSTextList Added constructors: ```csharp public NSTextList (string format); public NSTextList (NSTextListMarkerFormats format); ``` Obsoleted properties: ```diff [Obsolete ("Use 'CustomMarkerFormat' instead.")] public virtual string MarkerFormat { get; } ``` Added property: ```csharp public string CustomMarkerFormat { get; } ``` #### Type Changed: UIKit.NSTextListMarkerFormats Added value: ```csharp CustomString = -1, ``` #### Type Changed: UIKit.NSTextListOptions Added value: ```csharp None = 0, ``` #### Type Changed: UIKit.UIActivityItemsConfigurationInteraction Added value: ```csharp Copy = 1, ``` #### Type Changed: UIKit.UIActivityType Added property: ```csharp public static Foundation.NSString AddToHomeScreen { get; } ``` #### Type Changed: UIKit.UIButtonConfiguration Added properties: ```csharp public virtual UILineBreakMode SubtitleLineBreakMode { get; set; } public virtual UILineBreakMode TitleLineBreakMode { get; set; } ``` #### Type Changed: UIKit.UICalendarViewDelegate Added method: ```csharp public virtual void DidChangeVisibleDateComponents (UICalendarView calendarView, Foundation.NSDateComponents previousDateComponents); ``` #### Type Changed: UIKit.UIConfigurationColorTransformer Obsoleted properties: ```diff [Obsolete ("Use the 'MonochromeTint' property instead.")] public static IntPtr _MonochromeTint { get; } [Obsolete ("Use the 'PreferredTint' property instead.")] public static IntPtr _PreferredTint { get; } ``` #### Type Changed: UIKit.UIFont Obsoleted properties: ```diff [Obsolete ("Use the 'XHeight' property instead.")] public virtual nfloat xHeight { get; } ``` Added property: ```csharp public virtual nfloat XHeight { get; } ``` #### Type Changed: UIKit.UIHoverGestureRecognizer Added property: ```csharp public virtual nfloat AltitudeAngle { get; } ``` Added methods: ```csharp public virtual nfloat GetAzimuthAngle (UIView view); public virtual CoreGraphics.CGVector GetAzimuthUnitVector (UIView view); ``` #### Type Changed: UIKit.UISearchBar Added property: ```csharp public virtual bool Enabled { get; set; } ``` #### New Type: UIKit.UICalendarViewDelegate_Extensions ```csharp public static class UICalendarViewDelegate_Extensions { // methods public static void DidChangeVisibleDateComponents (this IUICalendarViewDelegate This, UICalendarView calendarView, Foundation.NSDateComponents previousDateComponents); } ``` #### New Type: UIKit.UIFontWeightConstants ```csharp public static class UIFontWeightConstants { // properties public static nfloat Black { get; } public static nfloat Bold { get; } public static nfloat Heavy { get; } public static nfloat Light { get; } public static nfloat Medium { get; } public static nfloat Regular { get; } public static nfloat Semibold { get; } public static nfloat Thin { get; } public static nfloat UltraLight { get; } } ``` #### New Type: UIKit.UIFontWeightExtensions ```csharp public static class UIFontWeightExtensions { // methods public static nfloat GetWeight (this UIFontWeight weight); } ``` #### New Type: UIKit.UITextInputContext ```csharp public class UITextInputContext : Foundation.NSObject { // constructors protected UITextInputContext (Foundation.NSObjectFlag t); protected UITextInputContext (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public static UITextInputContext Current { get; } public virtual bool DictationInputExpected { get; set; } public virtual bool HardwareKeyboardInputExpected { get; set; } public virtual bool PencilInputExpected { get; set; } } ``` ### Namespace VideoSubscriberAccount #### Type Changed: VideoSubscriberAccount.VSUserAccount Added property: ```csharp public virtual bool SignedOut { get; set; } ``` ### Namespace WebKit #### Type Changed: WebKit.WKPreferences Added property: ```csharp public virtual bool ShouldPrintBackgrounds { get; set; } ``` #### Type Changed: WebKit.WKUIDelegate Added methods: ```csharp public virtual void WillDismissEditMenu (WKWebView webView, UIKit.IUIEditMenuInteractionAnimating animator); public virtual void WillPresentEditMenu (WKWebView webView, UIKit.IUIEditMenuInteractionAnimating animator); ``` #### Type Changed: WebKit.WKUIDelegate_Extensions Added methods: ```csharp public static void WillDismissEditMenu (this IWKUIDelegate This, WKWebView webView, UIKit.IUIEditMenuInteractionAnimating animator); public static void WillPresentEditMenu (this IWKUIDelegate This, WKWebView webView, UIKit.IUIEditMenuInteractionAnimating animator); ``` #### Type Changed: WebKit.WKWebView Added property: ```csharp public virtual bool Inspectable { get; set; } ```