2015-07-03 2 views
-2

У меня есть 2 NSArray с содержанием ид и другие содержимое URLsРабота с NSDictionary массиву

Но когда я создаю NSDictionary его внешний вид, как это (от NSLog):

2015-07-03 17:10:51.072 hibridTesting[4950:166675] { 
    (
) =  (
); 
    (
    30, 
    31 
) =  (
    "https://www.google.com", 
    "https://www.yahoo.com" 
); 
    (
    10, 
    11, 
    12, 
    13 
) =  (
    "https://www.facebook.com/", 
    "https://www.sapo.pt", 
    "https://www.sapo.pt", 
    "https://www.sapo.pt" 
); 
    (
    20, 
    21, 
    22, 
    23, 
    24, 
    25 
) =  (
    "https://www.google.com", 
    "https://www.google.com", 
    "https://www.google.com", 
    "https://www.google.com", 
    "https://www.google.com", 
    "https://www.google.com" 
); 
} 

и если я это

arrayDeSitesSubmenus = [mydictionary objectForKey:@"21"]; 

и если я печатаю мой arrayDeSitesSubmenus это говорит nil.

То, что я хочу каждый идентификатор для URL, и то, что я понимаю, группа ключей к группе адресов

EDIT:

мои журналы из массивов:

2015-07-03 17:33:55.771 hibridTesting[5122:174427] (
    (
    "https://www.facebook.com/", 
    "https://www.sapo.pt", 
    "https://www.sapo.pt", 
    "https://www.sapo.pt" 
), 
    (
    "https://www.google.com", 
    "https://www.google.com", 
    "https://www.google.com", 
    "https://www.google.com", 
    "https://www.google.com", 
    "https://www.google.com" 
), 
    (
    "https://www.google.com", 
    "https://www.yahoo.com" 
), 
    (
), 
    (
), 
    (
), 
    (
) 
) 
2015-07-03 17:33:55.771 hibridTesting[5122:174427] (
    (
    10, 
    11, 
    12, 
    13 
), 
    (
    20, 
    21, 
    22, 
    23, 
    24, 
    25 
), 
    (
    30, 
    31 
), 
    (
), 
    (
), 
    (
), 
    (
) 
) 

я возьмите мои массивы из xmlparse, вот почему мои журналы выглядят так: спасибо.

+1

Вы не создали правильный '' NSDictionary''. Ключ не является «21», а «NSArray» от 20 до 25 с соответствующим URL-адресом. Используйте это: '[NSDictionary dictionaryWithObjects: arrayURLs forKeys: arrayIds];' – Larme

ответ

0

Как вы создаете свой NSDictionary?

При создании NSDictionary у вас есть две опции:

первый:

NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys:@"value1", @"key1", nil]; 

другой

NSDictionary *mdictionary = @{ @"key1" : @"value1" }; 

Поскольку у вас уже есть массив для обоих ключей и значений, лучший для вас используется initWithObjects:forKeys, который принимает массив значений и ключей и упорядочивает соответственно.

NSArray *keys = @[@"1", @"2", @"3", @"4", @"5"]; 

NSArray *values = @[@"value1", @"value2", @"value3", @"value4", @"value5"]; 

NSDictionary *dictionary = [[NSDictionary alloc] initWithObjects:values forKeys:keys]; 

и выход будет:

{ 
    1 = value1; 
    2 = value2; 
    3 = value3; 
    4 = value4; 
    5 = value5; 
} 

, но если ваш ключ являются числами, как

NSArray *keys = @[@1, @2, @3, @4, @5]; 

NSArray *values = @[@"value1", @"value2", @"value3", @"value4", @"value5"]; 

NSDictionary *dictionary = [[NSDictionary alloc] initWithObjects:values forKeys:keys]; 

//This is wrong and will return (null) 
// 
//NSLog(@"%@", [dictionary objectForKey:@"1"]); 

The correct one is: 
NSLog(@"%@", [dictionary objectForKey:@1]); 
or 
NSLog(@"%@", [dictionary objectForKey:[NSNumber numberWithInt:1]]); 

Надеется, что это полезно для вас. Ура!

+0

привет, спасибо помощнику, за помощь. но уже исправить то, что мне жаль беспокоить вас, это была плохая логика, я новичок в программировании, а объективный c - добрый, я пытаюсь подумать, в моем xml у меня есть идентификаторы menuID, поэтому работать легче, теперь я имеют id1 4urls id2 6urls и т. д., поэтому знаю, что я могу делать то, что хочу –

+0

Хорошо, это хорошо .. :) – 0yeoj

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