指定 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 *
。
只有 NSArray
和 NSDictionary
支持这种表示法。
对于 NSArray
,Objective-C 允许我们指定要存储在数组中的值的类型。例如,我可以声明一个 NSString
的数组,如下所示:
NSArray<NSString*> *arrayOfStrings;
虽然它不一定由编译器和运行时环境强制执行,但这样的指示对于可读性和稍微简单的代码语法来说都很方便。
我想知道 NSDictionary
是否存在这样的语法。例如,要指定字典中的值类型,是否存在类似以下内容:
NSDictionary<UIImage*> *imageMappings;
其中字典的值被指定为 UIImage
.
补充问题:
可以为 NSDictionary
指定密钥类型吗?
如果可能,我如何指定没有键类型的值类型?
Foundation
中是否还有其他具有这种通用参数化的常见数据结构?
对于 NSDictionary
,您指定键和值的类型:
NSDictionary<NSString*, UIImage*> *imageMappings
如果您不想要密钥的特定类型,请使用 id<NSCopying>
甚至 NSObject *
。
只有 NSArray
和 NSDictionary
支持这种表示法。