다음을 통해 공유


SFSafariViewControllerConfiguration 생성자

정의

오버로드

SFSafariViewControllerConfiguration()

기본 생성자는 이 클래스의 새 인스턴스를 초기화합니다.

SFSafariViewControllerConfiguration(NSObjectFlag)

초기화를 건너뛰고 개체만 할당하기 위해 파생 클래스에서 를 호출하는 생성자입니다.

SFSafariViewControllerConfiguration(IntPtr)

관리되지 않는 개체의 관리되는 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다.

SFSafariViewControllerConfiguration()

기본 생성자는 이 클래스의 새 인스턴스를 초기화합니다.

[Foundation.Export("init")]
public SFSafariViewControllerConfiguration ();
특성

적용 대상

SFSafariViewControllerConfiguration(NSObjectFlag)

초기화를 건너뛰고 개체만 할당하기 위해 파생 클래스에서 를 호출하는 생성자입니다.

protected SFSafariViewControllerConfiguration (Foundation.NSObjectFlag t);
new SafariServices.SFSafariViewControllerConfiguration : Foundation.NSObjectFlag -> SafariServices.SFSafariViewControllerConfiguration

매개 변수

t
NSObjectFlag

사용되지 않는 sentinel 값은 NSObjectFlag.Empty를 전달합니다.

설명

이 생성자는 관리 코드에서 개체를 완전히 구성하고 런타임에서 NSObject를 할당하고 초기화하려고 할 때 파생 클래스에서 호출해야 합니다. Objective-C에서 사용하는 2단계 초기화 프로세스를 구현하는 데 필요하며, 첫 번째 단계는 개체 할당을 수행하는 것이며, 두 번째 단계는 개체를 초기화하는 것입니다. 개발자가 NSObjectFlag.Empty를 사용하는 생성자를 호출할 때 NSObject까지의 직접 경로를 활용하여 개체의 메모리를 할당하고 Objective-C 및 C# 개체를 함께 바인딩할 뿐입니다. 개체의 실제 초기화는 개발자에게 달려 있습니다.

이 생성자는 일반적으로 바인딩 생성기에서 개체를 할당하는 데 사용되지만 실제 초기화가 수행되지 않도록 합니다. 할당이 수행되면 생성자는 개체를 초기화해야 합니다. 바인딩 생성기에서 생성된 생성자를 사용하면 "init" 메서드 중 하나를 수동으로 호출하여 개체를 초기화합니다.

NSObjectFlag.Empty 경로를 사용하여 연결된 경우 개체를 완전히 초기화하는 것은 개발자의 책임입니다.

일반적으로 개발자의 생성자가 NSObjectFlag.Empty 기본 구현을 호출하는 경우 Objective-C init 메서드를 호출해야 합니다. 그렇지 않은 경우 개발자는 대신 클래스의 적절한 생성자에 연결해야 합니다.

인수 값은 무시되며 단지 실행되는 유일한 코드가 기본 NSObject 할당 및 런타임 형식 등록임을 확인합니다. 일반적으로 체인은 다음과 같습니다.

//
// The NSObjectFlag merely allocates the object and registers the
// C# class with the Objective-C runtime if necessary, but no actual
// initXxx method is invoked, that is done later in the constructor
//
// This is taken from Xamarin.iOS's source code:
//
[Export ("initWithFrame:")]
public UIView (System.Drawing.RectangleF frame) : base (NSObjectFlag.Empty)
{
// Invoke the init method now.
	var initWithFrame = new Selector ("initWithFrame:").Handle;
	if (IsDirectBinding)
		Handle = ObjCRuntime.Messaging.IntPtr_objc_msgSend_CGRect (this.Handle, initWithFrame, frame);
	else
		Handle = ObjCRuntime.Messaging.IntPtr_objc_msgSendSuper_CGRect (this.SuperHandle, initWithFrame, frame);
}

적용 대상

SFSafariViewControllerConfiguration(IntPtr)

관리되지 않는 개체의 관리되는 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다.

protected internal SFSafariViewControllerConfiguration (IntPtr handle);
new SafariServices.SFSafariViewControllerConfiguration : nativeint -> SafariServices.SFSafariViewControllerConfiguration

매개 변수

handle
IntPtr

nativeint

관리되지 않는 개체에 대한 포인터(핸들)입니다.

설명

이 생성자는 런타임 인프라(GetNSObject(IntPtr))에서 호출되어 관리되지 않는 Objective-C 개체에 대한 포인터에 대한 새 관리형 표현을 만듭니다. 개발자는 이 메서드를 직접 호출하면 안 됩니다. 대신 GetNSObject 메서드를 호출하면 관리되는 개체의 두 인스턴스가 동일한 네이티브 개체를 가리키지 못하게 됩니다.

적용 대상