Я с трудом извлекая словарь из многоуровневого массива, который объявлен как:Извлечение словаря из многоуровневого массива с помощью indexPath.row
NSArray *menuItems;
и выглядит следующим образом:
Table = (
{
MENUDESC = "HOME ";
MENUID = 1072;
NAVIGATETO = "content.aspx?item=1072&pid=0";
NAVIGATETO2 = "default.aspx?item=1072&pid=0";
PARENTMENUID = "<null>";
PROTECTED = "<null>";
parentmenuid2 = "<null>";
},
{
MENUDESC = "PRODUCTS & SERVICES";
MENUID = 1073;
NAVIGATETO = "#";
NAVIGATETO2 = "default.aspx?item=1073&pid=0";
PARENTMENUID = "<null>";
PROTECTED = "<null>";
parentmenuid2 = "<null>";
},
{
MENUDESC = "ABOUT US";
MENUID = 1074;
NAVIGATETO = "content.aspx?item=1074&pid=0";
NAVIGATETO2 = "default.aspx?item=1074&pid=0";
PARENTMENUID = "<null>";
PROTECTED = "<null>";
parentmenuid2 = "<null>";
},
{
MENUDESC = "WHAT SETS US APART";
MENUID = 1075;
NAVIGATETO = "content.aspx?item=1075&pid=0";
NAVIGATETO2 = "default.aspx?item=1075&pid=0";
PARENTMENUID = "<null>";
PROTECTED = "<null>";
parentmenuid2 = "<null>";
},
{
MENUDESC = "CASE STUDIES";
MENUID = 1126;
NAVIGATETO = "content.aspx?item=1126&pid=0";
NAVIGATETO2 = "default.aspx?item=1126&pid=0";
PARENTMENUID = "<null>";
PROTECTED = "<null>";
parentmenuid2 = "<null>";
},
{
MENUDESC = "REQUEST PROPOSAL";
MENUID = 1076;
NAVIGATETO = "content.aspx?item=1076&pid=0";
NAVIGATETO2 = "default.aspx?item=1076&pid=0";
PARENTMENUID = "<null>";
PROTECTED = "<null>";
parentmenuid2 = "<null>";
},
{
MENUDESC = CONTACT;
MENUID = 1077;
NAVIGATETO = "contactus.aspx?item=1077&pid=0";
NAVIGATETO2 = "contactus.aspx?item=1077&pid=0";
PARENTMENUID = "<null>";
PROTECTED = "<null>";
parentmenuid2 = "<null>";
}
);
}
создан из JSON, который выглядит следующим образом:
{
"Table": [
{
"MENUID": 1072.0,
"MENUDESC": "HOME ",
"PARENTMENUID": null,
"NAVIGATETO": "content.aspx?item=1072&pid=0",
"NAVIGATETO2": "default.aspx?item=1072&pid=0",
"PROTECTED": null,
"parentmenuid2": null
},
{
"MENUID": 1073.0,
"MENUDESC": "PRODUCTS & SERVICES",
"PARENTMENUID": null,
"NAVIGATETO": "#",
"NAVIGATETO2": "default.aspx?item=1073&pid=0",
"PROTECTED": null,
"parentmenuid2": null
},
{
"MENUID": 1074.0,
"MENUDESC": "ABOUT US",
"PARENTMENUID": null,
"NAVIGATETO": "content.aspx?item=1074&pid=0",
"NAVIGATETO2": "default.aspx?item=1074&pid=0",
"PROTECTED": null,
"parentmenuid2": null
},
{
"MENUID": 1075.0,
"MENUDESC": "WHAT SETS US APART",
"PARENTMENUID": null,
"NAVIGATETO": "content.aspx?item=1075&pid=0",
"NAVIGATETO2": "default.aspx?item=1075&pid=0",
"PROTECTED": null,
"parentmenuid2": null
},
]
}
Я работаю через образец кода, где они используют это для извлечения словаря:
NSDictionary *items = [menuItems objectAtIndex:indexPath.row];
Но это не работает. Я получаю сообщение об ошибке «Недействительный селектор отправлен». Я пробовал всевозможные способы доступа к данным в массиве. Но все исследования и ответы, которые я нашел, не помогают.
Мне нужно создать NSStrings от него, как это:
NSString *text = [[menuItems objectForKey:@"Table"] objectForKey:@"MENUDESC"];
NSString *name = [[menuItems objectForKey:@"Table"] objectForKey:@"MENUID"];
добавить содержание MENUITEM массива в вашем вопросе. –
Почему вы думаете, что 'menuItems' является массивом? –
Он объявлен как массив, поэтому я не могу получить к нему доступ с помощью indexForKey: – Jimmypooza