UIApplicationDelegate 생성자
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
오버로드
UIApplicationDelegate() |
매개 변수 없이 이 클래스의 새 인스턴스를 초기화하는 기본 생성자입니다. |
UIApplicationDelegate(NSObjectFlag) |
초기화를 건너뛰고 개체만 할당하기 위해 파생 클래스에서 를 호출하는 생성자입니다. |
UIApplicationDelegate(IntPtr) |
관리되지 않는 개체의 관리 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다. |
UIApplicationDelegate()
매개 변수 없이 이 클래스의 새 인스턴스를 초기화하는 기본 생성자입니다.
[Foundation.Export("init")]
public UIApplicationDelegate ();
- 특성
적용 대상
UIApplicationDelegate(NSObjectFlag)
초기화를 건너뛰고 개체만 할당하기 위해 파생 클래스에서 를 호출하는 생성자입니다.
protected UIApplicationDelegate (Foundation.NSObjectFlag t);
new UIKit.UIApplicationDelegate : Foundation.NSObjectFlag -> UIKit.UIApplicationDelegate
매개 변수
사용되지 않는 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);
}
적용 대상
UIApplicationDelegate(IntPtr)
관리되지 않는 개체의 관리 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다.
protected internal UIApplicationDelegate (IntPtr handle);
new UIKit.UIApplicationDelegate : nativeint -> UIKit.UIApplicationDelegate
매개 변수
- handle
-
IntPtr
nativeint
관리되지 않는 개체에 대한 포인터(핸들)입니다.
설명
이 생성자는 런타임 인프라(GetNSObject(IntPtr))에서 호출되어 관리되지 않는 Objective-C 개체에 대한 포인터에 대한 새 관리형 표현을 만듭니다. 개발자는 이 메서드를 직접 호출하면 안 됩니다. 대신 GetNSObject 메서드를 호출해야 합니다. 이 메서드는 관리되는 개체의 두 인스턴스가 동일한 네이티브 개체를 가리키는 것을 방지합니다.