INShortcut 생성자
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
오버로드
INShortcut(NSCoder) |
unarchiver 개체에 저장된 데이터에서 개체를 초기화하는 생성자입니다. |
INShortcut(NSObjectFlag) |
초기화를 건너뛰고 개체만 할당하기 위해 파생 클래스에서 를 호출하는 생성자입니다. |
INShortcut(NSUserActivity) | |
INShortcut(INIntent) | |
INShortcut(IntPtr) |
관리되지 않는 개체의 관리 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다. |
INShortcut(NSCoder)
unarchiver 개체에 저장된 데이터에서 개체를 초기화하는 생성자입니다.
[Foundation.Export("initWithCoder:")]
[ObjCRuntime.DesignatedInitializer]
public INShortcut (Foundation.NSCoder coder);
new Intents.INShortcut : Foundation.NSCoder -> Intents.INShortcut
매개 변수
- coder
- NSCoder
unarchiver 개체입니다.
- 특성
설명
이 생성자는 클래스를 unarchiver에서 초기화할 수 있도록 제공됩니다(예: NIB 역직렬화 중). 이는 프로토콜의 NSCoding 일부입니다.
개발자가 이 개체의 하위 클래스를 만들고 보관 파일에서 역직렬화를 계속 지원하려는 경우 형식의 NSCoder 단일 매개 변수를 가져와서 [Export("initWithCoder:"] 특성 선언으로 데코레이트하는 동일한 서명을 사용하여 생성자를 구현해야 합니다.
이 개체의 상태는 도우미 메서드인 EncodeTo를 사용하여 직렬화할 수도 있습니다.
적용 대상
INShortcut(NSObjectFlag)
초기화를 건너뛰고 개체만 할당하기 위해 파생 클래스에서 를 호출하는 생성자입니다.
protected INShortcut (Foundation.NSObjectFlag t);
new Intents.INShortcut : Foundation.NSObjectFlag -> Intents.INShortcut
매개 변수
사용되지 않는 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);
}
적용 대상
INShortcut(NSUserActivity)
[Foundation.Export("initWithUserActivity:")]
public INShortcut (Foundation.NSUserActivity userActivity);
new Intents.INShortcut : Foundation.NSUserActivity -> Intents.INShortcut
매개 변수
- userActivity
- NSUserActivity
- 특성
적용 대상
INShortcut(INIntent)
[Foundation.Export("initWithIntent:")]
public INShortcut (Intents.INIntent intent);
new Intents.INShortcut : Intents.INIntent -> Intents.INShortcut
매개 변수
- intent
- INIntent
- 특성
적용 대상
INShortcut(IntPtr)
관리되지 않는 개체의 관리 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다.
protected internal INShortcut (IntPtr handle);
new Intents.INShortcut : nativeint -> Intents.INShortcut
매개 변수
- handle
-
IntPtr
nativeint
관리되지 않는 개체에 대한 포인터(핸들)입니다.
설명
이 생성자는 런타임 인프라(GetNSObject(IntPtr))에서 호출되어 관리되지 않는 Objective-C 개체에 대한 포인터에 대한 새 관리형 표현을 만듭니다. 개발자는 이 메서드를 직접 호출하면 안 됩니다. 대신 GetNSObject 메서드를 호출해야 합니다. 이 메서드는 관리되는 개체의 두 인스턴스가 동일한 네이티브 개체를 가리키는 것을 방지합니다.