NSDictionary或NSMutableDictionary.您可以使用对象作为键.
还有NSHashTable.
如果要使用原始整数作为对象的键,可以使用CFMutableDictionaryRef替换.这将使你从Cocoa进入CoreFoundation层,但它仍然可以正常工作:
CFMutableDictionaryRef indexMap;
indexMap = CFDictionaryCreateMutable(NULL, 0, NULL, &kCFTypeDictionaryValueCallBacks);
NSUInteger key = 42;
id value = @"The Answer";
CFDictionarySetValue(indexMap, (const void *)key, value);
id value = CFDictionaryGetValue(indexMap, (const void *)key);
CFRelease(indexMap);
Run Code Online (Sandbox Code Playgroud)
如果您要经常访问此字典并且不想处理大量瞬态NSNumber对象,这非常方便.
(我忽略了你可以免费搭桥,因为一旦你开始使用键和值的行为,你根本不想考虑这个问题NSMutableDictionary)