не может получить значение из NSDictionary, который ожидал иметь NSNumber в качестве вывода - PullRequest
1 голос
/ 24 октября 2011

Я создал NSDictionary вроде следующего:

NSArray * alphabets = [NSArray arrayWithObjects:@"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",@"i",@"j",@"k",@"l",@"m",@"n",@"o",@"p",@"q",@"r",@"s",@"t",@"u",@"v",@"w",@"x",@"y",@"z",nil];

    alphaToNum = [NSMutableDictionary dictionary];
    numToAlpha = [NSMutableDictionary dictionary];

for(NSString* character in alphabets)
    {

        [alphaToNum setObject:[NSNumber numberWithInteger:index] forKey:character];
        [numToAlpha setObject:character forKey:[NSNumber numberWithInteger:index]];
        index++;
    }

Теперь я хочу получить доступ к "numToAlpha", как показано ниже:

NSInteger code1;
NSNumber * nn = [numToAlpha objectForKey:code1];

, и я получу ошибку, тогда как в руководстведля objectforkey четко сказано (id) objectforkey (id), что означает что угодно!

1 Ответ

2 голосов
/ 24 октября 2011

NSInteger не является объектом.id относится к любому объекту типа.Вам нужно использовать [NSNumber numberWithInteger:code1], как вы уже делаете в своем примере кода.

...