对于NSArray
,Objective-C允许我们指定要存储在数组中的值的类型。例如,我可以声明一个NSString
的数组,如下所示:
NSArray<NSString*> *arrayOfStrings;
虽然它不一定由编译器和运行时环境强制执行,但这样的指示对于可读性和稍微简单的代码语法都很方便。
我想知道NSDictionary
是否存在这样的语法。例如,要在字典中指定值类型,请执行以下操作:
NSDictionary<UIImage*> *imageMappings;
其中字典的值指定为UIImage
类型。
其他问题:
可以为NSDictionary
指定密钥类型吗?
如果可能,如何在没有密钥类型的情况下指定值类型?
Foundation
中是否存在具有此通用参数化的其他常见数据结构?
答案 0 :(得分:1)
对于NSDictionary
,您可以指定键和值的类型。如果您不想要密钥的特定类型,请使用id<NSCopying>
甚至NSObject *
。
只有NSArray
和NSDictionary
支持此注释。