как создать NSDictionary, состоящий из NSArray NString для ключа и связки int для значения?

#objective-c #nsdictionary

#objective-c #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];
NSDictionary * alphaToNum = [NSDictionary dictionaryWithObject:alphabets forKey:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26];
//I know above line meant to not work I just brought it here as an example
  

как я могу создать словарь, подобный приведенному выше, который работает?

Ответ №1:

Вы можете использовать объекты только как ключи или значения в a NSDictionary , поэтому вы должны использовать NSNumber их как оболочку для вашего целочисленного ключа.

 NSMutableDictionary *alphaToNum = [NSMutableDictionary dictionary];
NSArray *alphabet = [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];
NSInteger index = 0;

for(NSString *character in alphabet)
{
    index   ;
    [alphaToNum setObject:character forKey:[NSNumber numberWithInteger:index]];
}
  

Комментарии:

1. О, ты первый =) Удалил мой ответ