objective-c中的哈希表

Sef*_*an2 1 hashtable objective-c ios

我可以使用什么类将NSMutableIndexSet中的索引与对象相关联?

Eri*_*ner 7

NSDictionaryNSMutableDictionary.您可以使用对象作为键.

还有NSHashTable.

  • `NSHashTable`现在可在iOS 6中使用. (7认同)
  • 哦,你在iOS上工作.`NSHashTable`仅适用于Mac.只需使用字典. (2认同)

Dav*_*ong 6

如果要使用原始整数作为对象的键,可以使用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)