Я схожу с ума, пытаясь понять, как реализовать tableView numberofRowsinSection
, и надеялся, что смогу получить несколько советов или предложений.Я чувствую, что я слишком усложнил все это.Позвольте мне начать с публикации преобразованных данных XML, которые теперь являются NSDictionary.
{
"@body" = "";
"@class_id" = "";
"@title" = Discussions;
"@type" = "Discussion Block";
},
{
"@body" = "";
"@class_id" = "";
"@col" = 1;
"@title" = YouTube;
"@type" = "Youtube Block";
item = {
"@body" = "http://www.youtube.com/watch?v=vDWhfsQHq1o&ob=av3e";
"@title" = "Gavin DeGraw - Not Over You";
"@type" = link;
};
},
{
"@body" = "";
"@class_id" = "";
"@title" = Calendar;
"@type" = "Calendar Block";
},
{
"@body" = "<p> homework test</p> ";
"@class_id" = "";
"@title" = Homework;
"@type" = "File Block";
item = (
{
"@body" = "https://MYDOMAIN.com/securelink;
"@title" = "crashreport.rtf";
"@type" = file;
},
{
"@body" = "mydomain.com/securelink";
"@title" = "Chem notes sep 26.docx";
"@type" = file;
}
);
},
{
"@body" = "<p> Link testing</p> ";
"@class_id" = "";
"@title" = Links;
"@type" = "Link Block";
item = (
{
"@body" = "http://google.com";
"@title" = Link1;
"@type" = link;
},
{
"@body" = "http://yahoo.com";
"@title" = link2;
"@type" = link;
},
{
"@body" = "http://reddit.com";
"@title" = link3;
"@type" = link;
}
);
}
)
Приведенные выше данные являются ответом.Цель этого состоит в том, чтобы первый ключ заголовка был заголовками таблицы, а второй ключ заголовка (внутри элемента) - строками соответствующих разделов.В методе tableView TitleforHeaderinSection
я просто использую этот код
for (NSDictionary *roster in response) {
[blockName addObject:[roster objectForKey@"@title"]];
}
return [blockName objectAtIndex:section];
В методе numberofRowsinSection
все становится сложнее.Это то, что я пытался
for (NSDictionary *myDict in [[response objectAtIndex:section] valueForKeyPath:@"item"]) {
NSArray *keys = [myDict allKeys];
if ([keys containsObject:@"@title"]) {
array3 = [[NSMutableArray alloc] init];
[array3 addObject:[myDict objectForKey:@"@title"]];
}
}
return array3;
Ошибка, которую я получаю, состоит в том, что myDict является строкой NSString и все ключи не могут быть использованы на ней.Я не уверен, почему это происходит, потому что, когда я изменяю это на objectAtIndex: 1 и регистрирую это, метод allKeys работает.Я также почти уверен, что это не лучший способ найти количество строк, необходимое в каждом разделе, поэтому, если есть лучший способ, пожалуйста, поделитесь.
Просто чтобы уточнить, это то, что яищу в моем tableView после анализа приведенных выше данных:
Header (Discussions)
-No rows under this header
Header (YouTube)
-Row (Gavin DeGraw - Not Over You)
Header (Calendar)
-No rows
Header (Homework)
-Row (crashreport)
-Row (chem notes)
Header (links)
-Row (link1)
-Row (link2)
-Row (link3)
Спасибо за вашу помощь.Я провел очень много исследований по методам NSDictionary и NSArray, но я не уверен, как решить эту проблему или как-то иначе ее кодировать.