#objective-c #nsdictionary
#objective-c #nsdictionary
Вопрос:
Я создал 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:
NSInteger
не является объектом. id
относится к любому типу объекта. Вам нужно использовать [NSNumber numberWithInteger:code1]
так, как вы уже делаете в своем примере кода.