2016-07-12 3 views
0

Для объекта NSArray Objective-C позволяет указать тип значений, которые будут храниться в массиве. Например, я могу объявить массив NSString-х следующим образом:Укажите тип значения записей NSDictionary

NSArray<NSString*> *arrayOfStrings; 

Хотя это не обязательно применяется в среде компилятора и среды выполнения, такое указание может быть удобно как для удобства чтения и немного проще синтаксис кода.

Мне было интересно, существует ли такой синтаксис для NSDictionary. Например, чтобы указать тип значения в словаре, делает что-то вроде следующего существует:

NSDictionary<UIImage*> *imageMappings; 

где значение Словаря по указывается быть типа UIImage.

Дополнительные вопросы:

Может быть указан ключ типа для NSDictionary?

Если возможно, как указать тип значения без ключа?

Существуют ли другие общие структуры данных в Foundation, которые имеют эту общую параметризацию?

ответ

2

Для NSDictionary вы указываете тип и для ключа, и для значения. Если вам не нужен определенный тип ключа, используйте id<NSCopying> или даже NSObject *.

Только NSArray и NSDictionary Поддержите это обозначение.

+0

'id' или' id 'будет лучше, чем' NSObject * ' – newacct

+0

Я не знал, были ли те допустимые спецификаторы типов. – Avi

Смежные вопросы