다음을 통해 공유


NSDataAsset 생성자

정의

오버로드

NSDataAsset(NSObjectFlag)

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

NSDataAsset(IntPtr)

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

NSDataAsset(String)

폴더의 "Contents.json" 파일에 지정된 name 데이터를 반환합니다.

NSDataAsset(String, NSBundle)

폴더의 "Contents.json" 파일에 지정된 name 데이터를 반환합니다.

NSDataAsset(NSObjectFlag)

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

protected NSDataAsset (Foundation.NSObjectFlag t);
new UIKit.NSDataAsset : Foundation.NSObjectFlag -> UIKit.NSDataAsset

매개 변수

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

적용 대상

NSDataAsset(IntPtr)

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

protected internal NSDataAsset (IntPtr handle);
new UIKit.NSDataAsset : nativeint -> UIKit.NSDataAsset

매개 변수

handle
IntPtr

nativeint

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

설명

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

적용 대상

NSDataAsset(String)

폴더의 "Contents.json" 파일에 지정된 name 데이터를 반환합니다.

[Foundation.Export("initWithName:")]
public NSDataAsset (string name);
new UIKit.NSDataAsset : string -> UIKit.NSDataAsset

매개 변수

name
String

".dataset" 확장이 없는 자산 카탈로그 내의 데이터 세트 폴더 이름입니다.

특성

설명

예를 들어 다음을 호출 new NSDataAsset("FolderName") 합니다.

적용 대상

NSDataAsset(String, NSBundle)

폴더의 "Contents.json" 파일에 지정된 name 데이터를 반환합니다.

[Foundation.Export("initWithName:bundle:")]
[ObjCRuntime.DesignatedInitializer]
public NSDataAsset (string name, Foundation.NSBundle bundle);
new UIKit.NSDataAsset : string * Foundation.NSBundle -> UIKit.NSDataAsset

매개 변수

name
String

".dataset" 확장이 없는 자산 카탈로그 내의 데이터 세트 폴더 이름입니다.

bundle
NSBundle

자산 카탈로그를 포함하는 번들입니다.

특성

설명

예를 들어 다음을 호출 new NSDataAsset("FolderName", NSBundle.MainBundle) 합니다.

적용 대상