2013-02-21 2 views
0

В основном у меня есть массив объектов nsstring, таких как «A», L, L, A, H, A ,ПЛОХО. Вывод должен быть NSDictionary 0,3,5,7 ДЛЯ ОБОЗНАЧЕНИЯ A, 1,2 ДЛЯ KEY L 4 для ключевых H 6 для KEY B 8 для ключевых D.Как я могу сделать nsdictionary из него строковыми объектами в качестве ключа и массива postion как объекта для ключа

+0

что вы подразумеваете под «выходом»? вы имеете в виду NSLog на экран? или вы просто хотите знать код, необходимый для хранения того, что вы описали в структуре данных? – abbood

+0

Просто хочу знать подход. Я попробовал это как для (id объекта в [MyArray reverseObjectEnumerator]). Но, похоже, не работает –

ответ

0

Это простой для- в петле, которая может выглядеть немного как это:

- (NSDictionary*)dictionaryFromArrayOfStrings:(NSArray*)array { 
    int idx = 1; 
    NSMutableDictionary *retVal = @{}.mutableCopy; 
    for (NSString *char in array) { 
     //reverse them for a dictionary of NSNumbers for a set of NSString keys 
     [retVal setObject:char forKey:@(idx)]; 
     idx++; 
    } 
    return retVal; 
} 
+0

интересный .. никогда не видел '@ {}. MutableCopy' before .. так же, как инициализация NSMutableDictionary, как и так:' NSMutableDictionary * retval = [NSMutableDictionary dictionaryWithCapacity: 0] '? – abbood

+0

Также вы использовали forKey: @ (idx), а не forKey: idx? – abbood

+0

Новые функции в Xcode. Первый - это словарный литерал, в котором я передаю сообщения для изменяемой копии (поэтому я получаю NSMutableDictionary). Второй бокс: возьмите любое число «ol» (int, float, long и т. Д.) И поместите его между @() и преобразуется в NSNumber. – CodaFi

0

вы не можете иметь массив, который имеет ключи и значения (т.е. NSDictonary 0,3,5,7 для ключа A) .. вы, что можно сделать с NSDictionary, далее, если у вас есть только набор значений .. тогда вы должны использовать массив для этого

Это то, что вы должны сделать:

NSDictionary* parent = [NSDictionary dictionaryWithObjectsAndKeys:[NSArray arrayWithObjects:@"A",@"L",@"L",@"A",@"H",@"A",@"B",@"A",@"D", nil], @"A", [NSDictionary dictionaryWithObjectsAndKeys:[NSArray arrayWithObjects:[[NSNumber numberWithInt:1], [NSNumber numberWithInt:2], nil]], @"L", [NSNUmber numberWithInt4], @"H", [NSNumber numberWithInt:6], @"B", [NSNumber numberWithInt:8], @"D",nil]; 
+0

Я не думаю, что мой вопрос был правильно сформирован. Я хочу иметь массив позиций индекса как объект и символ как ключ. Поэтому, если A является ключом, объектом для ключа будет массив, имеющий значения «0», «3''5''7», –

 Смежные вопросы

  • Нет связанных вопросов^_^