Поделиться через


NSDictionary Конструкторы

Определение

Перегрузки

NSDictionary()

Конструктор по умолчанию, который инициализирует новый экземпляр этого класса без параметров.

NSDictionary(NSCoder)

Конструктор, который инициализирует объект из данных, хранящихся в объекте unarchiver.

NSDictionary(NSDictionary)

Создает новый NSDictionary из существующего NSDictionary.

NSDictionary(NSObjectFlag)

Конструктор для вызова производных классов для пропуска инициализации и просто выделения объекта.

NSDictionary(NSUrl)

Создает новый словарь на основе содержимого PropertyList, расположенного по указанному URL-адресу.

NSDictionary(IntPtr)

Конструктор, используемый при создании управляемых представлений неуправляемых объектов; Вызывается средой выполнения.

NSDictionary(String)

Создает новый словарь на основе содержимого PropertyList, расположенного в указанном файле.

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

Создает NSDictionary из списка ключей NSObject и значений NSObject.

NSDictionary(Object, Object, Object[])

Создает NSDictionary из списка ключей и значений.

NSDictionary()

Конструктор по умолчанию, который инициализирует новый экземпляр этого класса без параметров.

[Foundation.Export("init")]
[ObjCRuntime.DesignatedInitializer]
public NSDictionary ();
Атрибуты

Применяется к

NSDictionary(NSCoder)

Конструктор, который инициализирует объект из данных, хранящихся в объекте unarchiver.

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

Параметры

coder
NSCoder

Объект unarchiver.

Атрибуты

Комментарии

Этот конструктор предоставляется для инициализации класса из неархиватора (например, во время десериализации NIB). Это часть NSCoding протокола.

Если разработчики хотят создать подкласс этого объекта и продолжать поддерживать десериализацию из архива, они должны реализовать конструктор с идентичной сигнатурой: взяв один параметр типа NSCoder и дополнив его объявлением атрибута [Export("initWithCoder:"].

Состояние этого объекта также можно сериализовать с помощью вспомогательного метода EncodeTo.

Применяется к

NSDictionary(NSDictionary)

Создает новый NSDictionary из существующего NSDictionary.

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

Параметры

other
NSDictionary

Исходный словарь.

Атрибуты

Применяется к

NSDictionary(NSObjectFlag)

Конструктор для вызова производных классов для пропуска инициализации и просто выделения объекта.

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

Параметры

t
NSObjectFlag

Неиспользуемое значение sentinel, передайте NSObjectFlag.Empty.

Комментарии

Этот конструктор должен вызываться производными классами, когда они полностью создают объект в управляемом коде и просто хотят, чтобы среда выполнения выделила и инициализировала NSObject. Это необходимо для реализации двухфакторного процесса инициализации, который использует Objective-C. Первый шаг — это выделение объекта, второй шаг — инициализация объекта. Когда разработчики вызывают конструктор, который принимает NSObjectFlag.Empty, они используют прямой путь вплоть до NSObject, чтобы просто выделить память объекта и связать объекты Objective-C и C# вместе. Фактическая инициализация объекта выполняется разработчиком.

Этот конструктор обычно используется генератором привязок для выделения объекта, но предотвращает фактическую инициализацию. После выделения конструктор должен инициализировать объект . При использовании конструкторов, созданных генератором привязки, это означает, что он вручную вызывает один из методов init для инициализации объекта.

Разработчик несет ответственность за полную инициализацию объекта, если он связан с использованием пути NSObjectFlag.Empty.

Как правило, если конструктор разработчика вызывает базовую реализацию NSObjectFlag.Empty, он должен вызывать метод инициализации Objective-C. Если это не так, разработчики должны вместо этого связать с соответствующим конструктором в своем классе.

Значение аргумента игнорируется и просто гарантирует, что единственным выполняемым кодом является этап создания, является базовое выделение 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);
}

Применяется к

NSDictionary(NSUrl)

Создает новый словарь на основе содержимого PropertyList, расположенного по указанному URL-адресу.

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

Параметры

url
NSUrl

URL-адрес ресурса, содержащего NSDictionary в формате PropertyList.

Атрибуты

Применяется к

NSDictionary(IntPtr)

Конструктор, используемый при создании управляемых представлений неуправляемых объектов; Вызывается средой выполнения.

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

Параметры

handle
IntPtr

nativeint

Указатель (дескриптор) на неуправляемый объект.

Комментарии

Этот конструктор вызывается инфраструктурой среды выполнения (GetNSObject(IntPtr)) для создания нового управляемого представления указателя на неуправляемый объект Objective-C. Разработчики не должны вызывать этот метод напрямую, вместо этого они должны вызывать метод GetNSObject, так как это не позволит двум экземплярам управляемого объекта указывать на один и тот же собственный объект.

Применяется к

NSDictionary(String)

Создает новый словарь на основе содержимого PropertyList, расположенного в указанном файле.

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

Параметры

fileName
String

Файл, содержащий словарь в формате списка свойств.

Атрибуты

Применяется к

NSDictionary(NSDictionary, Boolean)

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

Параметры

other
NSDictionary
copyItems
Boolean
Атрибуты

Применяется к

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

Параметры

url
NSUrl
error
NSError
Атрибуты

Применяется к

NSDictionary(NSObject, NSObject, NSObject[])

Создает NSDictionary из списка ключей NSObject и значений NSObject.

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

Параметры

first
NSObject

Первая клавиша.

second
NSObject

Первое значение.

args
NSObject[]

Оставшееся количество ключей и значений.

Комментарии

Список ключей и значений используется для создания словаря. Число параметров, передаваемых в эту функцию, должно быть четным.

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

Применяется к

NSDictionary(Object, Object, Object[])

Создает NSDictionary из списка ключей и значений.

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

Параметры

first
Object

Первая клавиша.

second
Object

Первое значение.

args
Object[]

Оставшееся количество ключей и значений.

Комментарии

Каждый объект C# упаковается как NSObject путем вызова FromObject(Object).

Список ключей и значений используется для создания словаря. Число параметров, передаваемых в эту функцию, должно быть четным.

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

Применяется к