NSObjectFlag Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Sentinel-Klasse, die vom MonoTouch-Framework verwendet wird.
public class NSObjectFlag
type NSObjectFlag = class
- Vererbung
-
NSObjectFlag
Hinweise
Der einzige Zweck der NSObjectFlag-Klasse besteht darin, als Sentinel in der NSObject-Klassenhierarchie verwendet zu werden, um sicherzustellen, dass die tatsächliche Objektinitialisierung nur in NSObject erfolgt.
Wenn Sie Ihre Konstruktoren mit NSObjectFlag.Empty verketten, wird nur die Zuordnung der Objektinstanz durchgeführt, es werden keine Aufrufe der init:-Methoden in Basisklassen ausgeführt. Wenn Ihr Code für die Initialisierung davon abhängig ist, sind Sie dafür verantwortlich, die richtige init-Methode direkt aufzurufen. Zum Beispiel:
//
// 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);
}
}
Wenn Sie eine Basisklasse zum Initialisieren benötigen, sollten Sie alternativ einen der anderen Konstruktoren aufrufen, die einige Parameter übernehmen.
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.
}
}
Felder
Empty |
Sentinel-Instanz. |