---
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; }
```