У меня есть вопрос относительно помещения данных JSON в табличное представление. Я нахожусь в точке, где я успешно проанализировал данные, так как они появляются в моей консоли - но я не могу понять, как поместить эти данные в мое табличное представление. Я потратил целую неделю, пытаясь заставить это работать, пробуя каждую комбинацию вещей под солнцем.
В большинстве случаев это просто сбой, иногда он говорит мне «[NSCFString count]: нераспознанный селектор», что, как я считаю, происходит, потому что я пытаюсь подсчитать строку, которая выдает исключение? - В любом случае, с помощью приведенного ниже кода, он просто печатает данные, которые я хочу, в консоли и показывает нагрузку серых линий в табличном представлении, так что это не дает сбоя (это лучшее, что я могу сделать на данный момент).
Будем весьма благодарны за любую помощь / совет о том, как заполнить таблицу всеми событиями. Мой конечный план для этого представления состоял в том, чтобы в списке было EventNames, которые при выборе выдвигают новый контроллер представления, показывающий данные для этого конкретного события.
Вот вид загруженного метода:
- (void)viewDidLoad {
[super viewDidLoad];
NSURL *url = [NSURL URLWithString:@"http://myurl........."];
NSString *jsonreturn = [[NSString alloc] initWithContentsOfURL:url];
NSLog(jsonreturn); //successfully returns the result of the page
//to parse it i have made a sbjsonparser object
SBJsonParser *json = [[SBJsonParser new] autorelease];
NSError *jsonError;
NSDictionary *parsedJSON = [json objectWithString:jsonreturn error:&jsonError];
//if successful, i can have a look inside parsedJSON - its worked as an NSdictionary and NSArray
NSArray* events = [parsedJSON objectForKey:@"Events"];
//eventNameList = [parsedJSON objectForKey:@"Events"];
NSLog(@"show me events: %@", events);
//NSLog(@"show me events: %@", eventNameList);
//lets try and get to rows
//NSEnumerator *enumerator = [events objectEnumerator];
NSEnumerator *enumerator = [events objectEnumerator];
NSDictionary* item;
while (item = (NSDictionary*)[enumerator nextObject]) {
NSLog(@"event item:eventName = %@", [item objectForKey:@"EventName"]); //everything to this point works and shows in the console
}
}
А вот код табличного представления:
//customise the number of sections in the table view
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
//customise number of rows
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [eventNameList count];
NSLog(@"here");
}
//customise the appearance of table view cells
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
//try to get a reusable cell
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
//create a new cell if there is not reusable cell available
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
//set the text display for the cell
NSString *cellValue = [eventNameList objectAtIndex:indexPath.row];
cell.textLabel.text = cellValue;
//NSLog(@"event item from table view:eventName = %@", eventNameList);
return cell;
}
Заранее спасибо, любая помощь или указатели приветствуются и приветствуются :)