Skip to content

Instantly share code, notes, and snippets.

@vs-mobiletools-engineering-service2
Created March 27, 2023 21:48
Show Gist options
  • Save vs-mobiletools-engineering-service2/17d6274497fd77ea069f89795741d17b to your computer and use it in GitHub Desktop.
Save vs-mobiletools-engineering-service2/17d6274497fd77ea069f89795741d17b to your computer and use it in GitHub Desktop.
stable-api-comparison/ios-api-diff.md
title description author ms.author ms.date ms.topic ms.assetid ms.prod
Xamarin.iOS SDK API diff: 16.1.1 vs 16.2.1
List of API changes between Xamarin.iOS versions 16.1.1 and 16.2.1.
spouliot
sepoulio
3/27/2023
article
ff544bd1-d637-34ac-0daa-08a2291c4844
xamarin

Xamarin.iOS SDK API diff: 16.1.1 vs 16.2.1

Namespace AVFoundation

Type Changed: AVFoundation.AVAssetWriter

Obsoleted properties:

 [Obsolete ("Use the 'Inputs' property instead.")]
 public virtual AVAssetWriterInput[] inputs { get; }

Added property:

public virtual AVAssetWriterInput[] Inputs { get; }

Type Changed: AVFoundation.AVCaptureDeviceFormat

Obsoleted properties:

 [Obsolete ("Use the 'IsVideoHdrSupported' property instead.")]
 public virtual bool videoHDRSupportedVideoHDREnabled { get; }

Added properties:

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:

public virtual CoreMedia.CMVideoDimensions MaxPhotoDimensions { get; set; }
public virtual bool PreservesLivePhotoCaptureSuspendedOnSessionStop { get; set; }

Type Changed: AVFoundation.AVCapturePhotoSettings

Added property:

public virtual CoreMedia.CMVideoDimensions MaxPhotoDimensions { get; set; }

Type Changed: AVFoundation.AVMetadata

Obsoleted properties:

 [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:

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

Namespace CoreAnimation

Type Changed: CoreAnimation.CAAnimation

Obsoleted properties:

 [Obsolete ("The name has been fixed, use 'AnimationDiscrete' instead.")]
 public static Foundation.NSString AnimationDescrete { get; }

Type Changed: CoreAnimation.CAGradientLayer

Obsoleted properties:

 [Obsolete ("Use 'CAGradientLayerType.Axial' enum instead.")]
 public static Foundation.NSString GradientLayerAxial { get; }

Type Changed: CoreAnimation.CAMetalLayer

Added properties:

public virtual Foundation.NSDictionary DeveloperHudProperties { get; set; }
public virtual CAEdrMetadata EdrMetadata { get; set; }
public virtual bool WantsExtendedDynamicRangeContent { get; set; }

New Type: CoreAnimation.CAEdrMetadata

public class CAEdrMetadata : Foundation.NSObject {
	// constructors
	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 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:

 [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:

 [Obsolete ("Use 'UbiquitousContainerIdentifierKey' instead.")]
 public static Foundation.NSString eUbiquitousContainerIdentifierKey { get; }

Namespace CoreFoundation

Type Changed: CoreFoundation.CFSocket

Added properties:

public System.Net.IPEndPoint Address { get; }
public System.Net.IPEndPoint RemoteAddress { get; }

Added method:

public void Invalidate ();

Namespace CoreGraphics

Type Changed: CoreGraphics.CGImagePropertiesGps

Added properties:

public string LatitudeRef { get; set; }
public string LongitudeRef { get; set; }

Namespace Foundation

Type Changed: Foundation.NSAttributedString

Obsoleted methods:

 [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:

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:

 [Obsolete ("Use the 'AllBundles' property instead.")]
 public static NSBundle[] _AllBundles { get; }

Added property:

public static NSBundle[] AllBundles { get; }

Type Changed: Foundation.NSKeyValueObservingOptions

Added value:

None = 0,

Type Changed: Foundation.NSOperatingSystemVersion

Added constructors:

public NSOperatingSystemVersion (nint major);
public NSOperatingSystemVersion (nint major, nint minor);

Added interfaces:

System.IComparable
System.IEquatable<NSOperatingSystemVersion>

Added methods:

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:

 [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.NSValue

Added property:

public virtual CoreMedia.CMVideoDimensions CMVideoDimensionsValue { get; }

Added method:

public static NSValue FromCMVideoDimensions (CoreMedia.CMVideoDimensions value);

Type Changed: Foundation.NSValueTransformer

Obsoleted properties:

 [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:

public virtual void StartGroupActivity (System.Action<GKPlayer> handler);
public virtual void StopGroupActivity ();

Namespace Intents

Type Changed: Intents.INIntentIdentifier

Added values:

AnswerCall = 26,
HangUpCall = 27,

New Type: Intents.IINAnswerCallIntentHandling

public interface IINAnswerCallIntentHandling : ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public virtual void HandleAnswerCall (INAnswerCallIntent intent, System.Action<INAnswerCallIntentResponse> completion);
}

New Type: Intents.IINHangUpCallIntentHandling

public interface IINHangUpCallIntentHandling : ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public virtual void HandleHangUpCall (INHangUpCallIntent intent, System.Action<INHangUpCallIntentResponse> completion);
}

New Type: Intents.INAnswerCallIntent

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 override IntPtr ClassHandle { get; }
}

New Type: Intents.INAnswerCallIntentHandling_Extensions

public static class INAnswerCallIntentHandling_Extensions {
	// methods
	public static void ConfirmAnswerCall (this IINAnswerCallIntentHandling This, INAnswerCallIntent intent, System.Action<INAnswerCallIntentResponse> completion);
}

New Type: Intents.INAnswerCallIntentResponse

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

[Serializable]
public enum INAnswerCallIntentResponseCode {
	ContinueInApp = 2,
	Failure = 5,
	FailureRequiringAppLaunch = 6,
	InProgress = 3,
	Ready = 1,
	Success = 4,
	Unspecified = 0,
}

New Type: Intents.INHangUpCallIntent

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 override IntPtr ClassHandle { get; }
}

New Type: Intents.INHangUpCallIntentHandling_Extensions

public static class INHangUpCallIntentHandling_Extensions {
	// methods
	public static void ConfirmHangUpCall (this IINHangUpCallIntentHandling This, INHangUpCallIntent intent, System.Action<INHangUpCallIntentResponse> completion);
}

New Type: Intents.INHangUpCallIntentResponse

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

[Serializable]
public enum INHangUpCallIntentResponseCode {
	Failure = 4,
	FailureNoCallToHangUp = 6,
	FailureRequiringAppLaunch = 5,
	InProgress = 2,
	Ready = 1,
	Success = 3,
	Unspecified = 0,
}

Namespace MapKit

Type Changed: MapKit.MKOverlayRenderer

Added method:

public static nfloat MKRoadWidthAtZoomScale (nfloat zoomScale);

Type Changed: MapKit.MKOverlayView

Obsoleted methods:

 [Obsolete ("Use 'MKOverlayRenderer.MKRoadWidthAtZoomScale' instead.")]
 public static nfloat MKRoadWidthAtZoomScale (nfloat zoomScale);

Type Changed: MapKit.MKReverseGeocoder

Obsoleted properties:

 [Obsolete ("Use the 'Coordinate' property instead.")]
 public virtual CoreLocation.CLLocationCoordinate2D coordinate { get; }

Added property:

public virtual CoreLocation.CLLocationCoordinate2D Coordinate { get; }

Namespace Metal

Type Changed: Metal.IMTLRenderCommandEncoder_Extensions

Added methods:

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:

-public bool? GenerateMipmaps { get; set; }
+public bool? GenerateMipmaps { get; }

Namespace Network

Type Changed: Network.NWDataTransferReport

Obsoleted methods:

 [Obsolete ("Use the 'GetPathRadioType' property instead.")]
 public NWInterfaceRadioType get_path_radio_type (uint pathIndex);

Added method:

public NWInterfaceRadioType GetPathRadioType (uint pathIndex);

Namespace ObjCRuntime

Type Changed: ObjCRuntime.BlockLiteral

Added interface:

System.IDisposable

Added property:

public object Context { get; }

Added method:

public virtual void Dispose ();

Type Changed: ObjCRuntime.Constants

Modified fields:

-public const string SdkVersion = "16.1";
+public const string SdkVersion = "16.2";
-public const string Version = "16.1.1";
+public const string Version = "16.2.1";

Namespace Photos

Type Changed: Photos.PHFetchResult

Obsoleted properties:

 [Obsolete ("Use the 'FirstObject' property instead.")]
 public virtual Foundation.NSObject firstObject { get; }

Added property:

public virtual Foundation.NSObject FirstObject { get; }

Namespace SceneKit

Type Changed: SceneKit.SCNHitTest

Obsoleted properties:

 [Obsolete ("Use 'SearchModeKey' instead.")]
 public static Foundation.NSString OptionSearchModeKey { get; }

Namespace StoreKit

Type Changed: StoreKit.StoreProductParameters

Modified properties:

-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:

 [Obsolete ("This property will be ignored in .NET 8.")]
 public bool BypassBackgroundSessionCheck { get; set; }

Namespace UIKit

Type Changed: UIKit.NSTextList

Added constructors:

public NSTextList (string format);
public NSTextList (NSTextListMarkerFormats format);

Obsoleted properties:

 [Obsolete ("Use 'CustomMarkerFormat' instead.")]
 public virtual string MarkerFormat { get; }

Added property:

public string CustomMarkerFormat { get; }

Type Changed: UIKit.NSTextListMarkerFormats

Added value:

CustomString = -1,

Type Changed: UIKit.NSTextListOptions

Added value:

None = 0,

Type Changed: UIKit.UICalendarViewDelegate

Added method:

public virtual void DidChangeVisibleDateComponents (UICalendarView calendarView, Foundation.NSDateComponents previousDateComponents);

Type Changed: UIKit.UIConfigurationColorTransformer

Obsoleted properties:

 [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:

 [Obsolete ("Use the 'XHeight' property instead.")]
 public virtual nfloat xHeight { get; }

Added property:

public virtual nfloat XHeight { get; }

New Type: UIKit.UICalendarViewDelegate_Extensions

public static class UICalendarViewDelegate_Extensions {
	// methods
	public static void DidChangeVisibleDateComponents (this IUICalendarViewDelegate This, UICalendarView calendarView, Foundation.NSDateComponents previousDateComponents);
}

New Type: UIKit.UIFontWeightConstants

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

public static class UIFontWeightExtensions {
	// methods
	public static nfloat GetWeight (this UIFontWeight weight);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment