NSObjectFlag クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
MonoTouch フレームワークで使用される Sentinel クラス。
public class NSObjectFlag
type NSObjectFlag = class
- 継承
-
NSObjectFlag
注釈
NSObjectFlag クラスの唯一の目的は、実際のオブジェクトの初期化が NSObject でのみ行われるようにするために、NSObject クラス階層のセンチネルとして使用することです。
NSObjectFlag.Empty を使用してコンストラクターを連結すると、オブジェクト インスタンスの割り当てだけが実行されます。基底クラスの init: メソッドの呼び出しは実行されません。 コードが初期化に依存している場合は、適切な init メソッドを直接呼び出す必要があります。 次に例を示します。
//
// 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'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_RectangleF (this.Handle, initWithFrame, frame);
} else {
Handle = ObjCRuntime.Messaging.IntPtr_objc_msgSendSuper_RectangleF (this.SuperHandle, initWithFrame, frame);
}
}
または、それ自体を初期化するために基底クラスが必要な場合は、いくつかのパラメーターを受け取る他のコンストラクターのいずれかを呼び出す必要があります。
class MyViw : UIView {
[Export ("initWithFrame:")]
public MyView (RectangleF frame) : base (frame)
{
// this initialized MyView by calling the UIView constructor
// that initializes the object from a RectangleF frame.
}
}
フィールド
Empty |
Sentinel インスタンス。 |