NSObjectFlag Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Classe Sentinel usada pela estrutura MonoTouch.
public class NSObjectFlag
type NSObjectFlag = class
- Herança
-
NSObjectFlag
Comentários
A única finalidade para a classe NSObjectFlag é ser usada como sentinela na hierarquia de classe NSObject para garantir que a inicialização real do objeto ocorra apenas em NSObject.
Quando você encadeia seus construtores usando NSObjectFlag.Empty, a única coisa que ocorrerá é a alocação da instância do objeto, nenhuma chamada para nenhum dos métodos init: nas classes base será executada. Se o código depender disso para inicialização, você será responsável por chamar o método de inicialização adequado diretamente. Por exemplo:
//
// 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);
}
}
Como alternativa, se você precisar de uma classe base para se inicializar, deverá chamar um dos outros construtores que levam alguns parâmetros.
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.
}
}
Campos
Empty |
Instância do Sentinel. |