指定NSDictionary条目的值类型

时间:2016-07-12 15:22:27

标签: objective-c generics nsarray nsdictionary

对于NSArray,Objective-C允许我们指定要存储在数组中的值的类型。例如,我可以声明一个NSString的数组,如下所示:

NSArray<NSString*> *arrayOfStrings;

虽然它不一定由编译器和运行时环境强制执行,但这样的指示对于可读性和稍微简单的代码语法都很方便。

我想知道NSDictionary是否存在这样的语法。例如,要在字典中指定值类型,请执行以下操作:

NSDictionary<UIImage*> *imageMappings;

其中字典的值指定为UIImage类型。

其他问题:

可以为NSDictionary指定密钥类型吗?

如果可能,如何在没有密钥类型的情况下指定值类型?

Foundation中是否存在具有此通用参数化的其他常见数据结构?

1 个答案:

答案 0 :(得分:1)

对于NSDictionary,您可以指定键和值的类型。如果您不想要密钥的特定类型,请使用id<NSCopying>甚至NSObject *

只有NSArrayNSDictionary支持此注释。