Вы захотите использовать C API для NSMapTable после настройки экземпляра NSMapTable для использования целочисленных ключей. Пример:
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSMapTable *mt = [NSMapTable mapTableWithKeyOptions: NSPointerFunctionsIntegerPersonality | NSPointerFunctionsOpaqueMemory
valueOptions: NSPointerFunctionsObjectPersonality];
for(NSUInteger i = 0; i<10; i++)
NSMapInsert(mt, (void *) i, [NSNumber numberWithInt: i]);
for(NSUInteger j = 0; j<10; j++)
NSLog(@"retrieved %@", (id) NSMapGet(mt, (void *) j));
[pool drain];
return 0;
}
Обратите внимание, что в NSMapTable (), похоже, есть ошибка, из-за которой 0 не может быть ключом. К сожалению.
Лучшая документация функционального API для NSMapTable запрашивается в .
Исправление проблемы с ключом 0 описано в