指定 NSDictionary 条目的值类型

Specify value type of NSDictionary entries

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

NSArray<NSString*> *arrayOfStrings;

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

我想知道 NSDictionary 是否存在这样的语法。例如,要指定字典中的值类型,是否存在类似以下内容:

NSDictionary<UIImage*> *imageMappings;

其中字典的值被指定为 UIImage.

类型

补充问题:

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

如果可能,我如何指定没有键类型的值类型?

Foundation 中是否还有其他具有这种通用参数化的常见数据结构?

对于 NSDictionary,您指定键和值的类型:

NSDictionary<NSString*, UIImage*> *imageMappings

如果您不想要密钥的特定类型,请使用 id<NSCopying> 甚至 NSObject *

只有 NSArrayNSDictionary 支持这种表示法。