Share via


NSDictionary Costruttori

Definizione

Overload

NSDictionary()

Costruttore predefinito che inizializza una nuova istanza di questa classe senza parametri.

NSDictionary(NSCoder)

Costruttore che inizializza l'oggetto dai dati archiviati nell'oggetto unarchiver.

NSDictionary(NSDictionary)

Crea un nuovo NSDictionary da un NSDictionary esistente.

NSDictionary(NSObjectFlag)

Costruttore da chiamare sulle classi derivate per ignorare l'inizializzazione e allocare semplicemente l'oggetto.

NSDictionary(NSUrl)

Crea un nuovo dizionario dal contenuto di un propertylist che si trova in un URL specificato.

NSDictionary(IntPtr)

Costruttore utilizzato durante la creazione di rappresentazioni gestite di oggetti non gestiti; Chiamato dal runtime.

NSDictionary(String)

Crea un nuovo dizionario dal contenuto di un oggetto PropertyList che si trova nel file specificato.

NSDictionary(NSDictionary, Boolean)
NSDictionary(NSUrl, NSError)
NSDictionary(NSObject, NSObject, NSObject[])

Crea un NSDictionary da un elenco di chiavi NSObject e valori NSObject.

NSDictionary(Object, Object, Object[])

Crea un NSDictionary da un elenco di chiavi e valori.

NSDictionary()

Costruttore predefinito che inizializza una nuova istanza di questa classe senza parametri.

[Foundation.Export("init")]
[ObjCRuntime.DesignatedInitializer]
public NSDictionary ();
Attributi

Si applica a

NSDictionary(NSCoder)

Costruttore che inizializza l'oggetto dai dati archiviati nell'oggetto unarchiver.

[Foundation.Export("initWithCoder:")]
[ObjCRuntime.DesignatedInitializer]
public NSDictionary (Foundation.NSCoder coder);
new Foundation.NSDictionary : Foundation.NSCoder -> Foundation.NSDictionary

Parametri

coder
NSCoder

Oggetto unarchiver.

Attributi

Commenti

Questo costruttore viene fornito per consentire l'inizializzazione della classe da un nonrchiver , ad esempio durante la deserializzazione NIB. Fa parte del NSCoding protocollo.

Se gli sviluppatori vogliono creare una sottoclasse di questo oggetto e continuare a supportare la deserializzazione da un archivio, devono implementare un costruttore con una firma identica: accettando un singolo parametro di tipo NSCoder e decorarlo con la dichiarazione di attributo [Export("initWithCoder:"].

Lo stato di questo oggetto può essere serializzato anche usando il metodo complementare EncodeTo.

Si applica a

NSDictionary(NSDictionary)

Crea un nuovo NSDictionary da un NSDictionary esistente.

[Foundation.Export("initWithDictionary:")]
public NSDictionary (Foundation.NSDictionary other);
new Foundation.NSDictionary : Foundation.NSDictionary -> Foundation.NSDictionary

Parametri

other
NSDictionary

Dizionario di origine.

Attributi

Si applica a

NSDictionary(NSObjectFlag)

Costruttore da chiamare sulle classi derivate per ignorare l'inizializzazione e allocare semplicemente l'oggetto.

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

Parametri

t
NSObjectFlag

Valore sentinel inutilizzato, passare NSObjectFlag.Empty.

Commenti

Questo costruttore deve essere chiamato dalle classi derivate quando costruiscono completamente l'oggetto nel codice gestito e vogliono semplicemente che il runtime allochi e inizializzi NSObject. Questa operazione è necessaria per implementare il processo di inizializzazione in due passaggi usato da Objective-C, il primo passaggio consiste nell'eseguire l'allocazione dell'oggetto, il secondo passaggio consiste nell'inizializzare l'oggetto. Quando gli sviluppatori richiamano il costruttore che accetta NSObjectFlag.Empty sfruttano un percorso diretto che va fino a NSObject per allocare semplicemente la memoria dell'oggetto e associare gli oggetti Objective-C e C#. L'inizializzazione effettiva dell'oggetto spetta allo sviluppatore.

Questo costruttore viene in genere usato dal generatore di associazioni per allocare l'oggetto, ma impedisce che venga eseguita l'inizializzazione effettiva. Dopo aver eseguito l'allocazione, il costruttore deve inizializzare l'oggetto. Con i costruttori generati dal generatore di binding, ciò significa che richiama manualmente uno dei metodi "init" per inizializzare l'oggetto.

È responsabilità dello sviluppatore inizializzare completamente l'oggetto se esegue la concatenamento usando il percorso NSObjectFlag.Empty.

In generale, se il costruttore dello sviluppatore richiama l'implementazione di base NSObjectFlag.Empty, deve chiamare un metodo init Objective-C. In caso contrario, gli sviluppatori devono invece concatenarsi al costruttore appropriato nella classe.

Il valore dell'argomento viene ignorato e garantisce semplicemente che l'unico codice eseguito sia la fase di costruzione sia l'allocazione NSObject di base e la registrazione del tipo di runtime. In genere il concatenamento sarà simile al seguente:

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

Si applica a

NSDictionary(NSUrl)

Crea un nuovo dizionario dal contenuto di un propertylist che si trova in un URL specificato.

[Foundation.Export("initWithContentsOfURL:")]
public NSDictionary (Foundation.NSUrl url);
new Foundation.NSDictionary : Foundation.NSUrl -> Foundation.NSDictionary

Parametri

url
NSUrl

URL della risorsa contenente un NSDictionary in formato PropertyList.

Attributi

Si applica a

NSDictionary(IntPtr)

Costruttore utilizzato durante la creazione di rappresentazioni gestite di oggetti non gestiti; Chiamato dal runtime.

protected internal NSDictionary (IntPtr handle);
new Foundation.NSDictionary : nativeint -> Foundation.NSDictionary

Parametri

handle
IntPtr

nativeint

Puntatore (handle) all'oggetto non gestito.

Commenti

Questo costruttore viene richiamato dall'infrastruttura di runtime (GetNSObject(IntPtr)) per creare una nuova rappresentazione gestita per un puntatore a un oggetto Objective-C non gestito. Gli sviluppatori non devono richiamare direttamente questo metodo, ma devono chiamare il metodo GetNSObject perché impedirà a due istanze di un oggetto gestito di puntare allo stesso oggetto nativo.

Si applica a

NSDictionary(String)

Crea un nuovo dizionario dal contenuto di un oggetto PropertyList che si trova nel file specificato.

[Foundation.Export("initWithContentsOfFile:")]
public NSDictionary (string fileName);
new Foundation.NSDictionary : string -> Foundation.NSDictionary

Parametri

fileName
String

File contenente un dizionario formattato elenco proprietà.

Attributi

Si applica a

NSDictionary(NSDictionary, Boolean)

[Foundation.Export("initWithDictionary:copyItems:")]
public NSDictionary (Foundation.NSDictionary other, bool copyItems);
new Foundation.NSDictionary : Foundation.NSDictionary * bool -> Foundation.NSDictionary

Parametri

other
NSDictionary
copyItems
Boolean
Attributi

Si applica a

NSDictionary(NSUrl, NSError)

[Foundation.Export("initWithContentsOfURL:error:")]
[ObjCRuntime.Introduced(ObjCRuntime.PlatformName.WatchOS, 4, 0, ObjCRuntime.PlatformArchitecture.All, null)]
[ObjCRuntime.Introduced(ObjCRuntime.PlatformName.TvOS, 11, 0, ObjCRuntime.PlatformArchitecture.All, null)]
[ObjCRuntime.Introduced(ObjCRuntime.PlatformName.MacOSX, 10, 13, ObjCRuntime.PlatformArchitecture.All, null)]
[ObjCRuntime.Introduced(ObjCRuntime.PlatformName.iOS, 11, 0, ObjCRuntime.PlatformArchitecture.All, null)]
public NSDictionary (Foundation.NSUrl url, out Foundation.NSError error);
new Foundation.NSDictionary : Foundation.NSUrl *  -> Foundation.NSDictionary

Parametri

url
NSUrl
error
NSError
Attributi

Si applica a

NSDictionary(NSObject, NSObject, NSObject[])

Crea un NSDictionary da un elenco di chiavi NSObject e valori NSObject.

public NSDictionary (Foundation.NSObject first, Foundation.NSObject second, params Foundation.NSObject[] args);
new Foundation.NSDictionary : Foundation.NSObject * Foundation.NSObject * Foundation.NSObject[] -> Foundation.NSDictionary

Parametri

first
NSObject

Prima chiave.

second
NSObject

Primo valore.

args
NSObject[]

Pais rimanenti di chiavi e valori.

Commenti

L'elenco di chiavi e valori viene usato per creare il dizionario. Il numero di parametri passati a questa funzione deve essere pari.

var key1 = new NSString ("key1");
var value1 = new NSNumber ((byte) 1);
var key2 = new NSString ("key2");
var value2 = new NSNumber ((byte) 2);

var dict2 = new NSDictionary (key1, value1, key2, value2);

Si applica a

NSDictionary(Object, Object, Object[])

Crea un NSDictionary da un elenco di chiavi e valori.

public NSDictionary (object first, object second, params object[] args);
new Foundation.NSDictionary : obj * obj * obj[] -> Foundation.NSDictionary

Parametri

first
Object

Prima chiave.

second
Object

Primo valore.

args
Object[]

Pais rimanenti di chiavi e valori.

Commenti

Ogni oggetto C# viene sottoposto a boxing come NSObject chiamando FromObject(Object).

L'elenco di chiavi e valori viene usato per creare il dizionario. Il numero di parametri passati a questa funzione deve essere pari.

//
// Using C# objects, strings and ints, produces
// a dictionary with 2 NSString keys, "key1" and "key2"
// and two NSNumbers with the values 1 and 2
//
var dict = new NSDictionary ("key1", 1, "key2", 2);

Si applica a