解析值显示iphone中的错误

解析值显示iphone中的错误,iphone,objective-c,Iphone,Objective C,现在,当我在displayonttable视图中使用这个数据时,它会在所有单元格上显示testRow,但我需要单元格文本上的位置,以及来自JSON的详细文本中的市政信息,所以如何进行更改 [行添加对象:@“testRow”]; 到 [rows addObject:[eventDict objectForKey:@“位置”] 我建议您创建一个带有必要属性的事件类,比如位置、城市。然后你可以做: SBJsonParser *parser= [[SBJsonParser alloc] init];

现在,当我在displayonttable视图中使用这个数据时,它会在所有单元格上显示testRow,但我需要单元格文本上的位置,以及来自JSON的详细文本中的市政信息,所以如何进行更改 [行添加对象:@“testRow”]; 到 [rows addObject:[eventDict objectForKey:@“位置”]

我建议您创建一个带有必要属性的事件类,比如位置、城市。然后你可以做:

 SBJsonParser *parser= [[SBJsonParser alloc] init];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.krsconnect.no/community/api.html?method=bareListEventsByCategory&appid=620&category-selected=350&counties-selected=Vest-Agder,Aust-Agder"]];
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *json_string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];
//NSDictionary *object = [parser objectWithString:json_string error:nil];

  NSArray *results = [parser objectWithString:json_string error:nil];
NSMutableArray *data = [NSMutableArray array]
self.data = data;

// check that what we've parsed is NSArray
 if (results && [results isKindOfClass:[NSArray class]]) {
    for (NSDictionary *sectionDict in results) {
    if ([sectionDict isKindOfClass:[NSDictionary class]]) {
        NSString *sectionTitle = [[sectionDict objectForKey:@"date"] description];
        NSArray *events = [sectionDict objectForKey:@"events"];
        if (date && events && [events isKindOfClass:[NSArray class]]) {
            NSMutableArray *rows = [NSMutableArray arrayWithCapacity:[events count]];

            for (NSDictionary *eventDict in events) {
                if ([eventDict isKindOfClass:[NSDictionary class]]) {
                    [rows addObject:@"testRow"];
                }
            }

            [data addObject:[NSDictionary dictionaryWithObjectsAndKeys: sectionTitle, @"section", rows, @"rows", nil]];
        }

       }
    }
}
然后您可以使用控制器中的行。

更改 [行添加对象:@“testRow”]; 到 [rows addObject:[eventDict objectForKey:@“位置”]

我建议您创建一个带有必要属性的事件类,比如位置、城市。然后你可以做:

 SBJsonParser *parser= [[SBJsonParser alloc] init];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.krsconnect.no/community/api.html?method=bareListEventsByCategory&appid=620&category-selected=350&counties-selected=Vest-Agder,Aust-Agder"]];
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *json_string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];
//NSDictionary *object = [parser objectWithString:json_string error:nil];

  NSArray *results = [parser objectWithString:json_string error:nil];
NSMutableArray *data = [NSMutableArray array]
self.data = data;

// check that what we've parsed is NSArray
 if (results && [results isKindOfClass:[NSArray class]]) {
    for (NSDictionary *sectionDict in results) {
    if ([sectionDict isKindOfClass:[NSDictionary class]]) {
        NSString *sectionTitle = [[sectionDict objectForKey:@"date"] description];
        NSArray *events = [sectionDict objectForKey:@"events"];
        if (date && events && [events isKindOfClass:[NSArray class]]) {
            NSMutableArray *rows = [NSMutableArray arrayWithCapacity:[events count]];

            for (NSDictionary *eventDict in events) {
                if ([eventDict isKindOfClass:[NSDictionary class]]) {
                    [rows addObject:@"testRow"];
                }
            }

            [data addObject:[NSDictionary dictionaryWithObjectsAndKeys: sectionTitle, @"section", rows, @"rows", nil]];
        }

       }
    }
}

然后,您可以使用控制器中的行。

我这样做,但它显示所有的nill值,并由于未捕获的异常“NSRangeException”而导致异常终止应用程序,原因:'***-[NSCFArray objectAtIndex:::]:索引(76931520)超出边界(7)'我是这样做的,但它显示了所有的nill值,并给出了由于未捕获异常'NSRangeException'而终止应用程序的异常,原因:'***-[NSCFArray objectAtIndex::]:索引(76931520)超出边界(7)'