Ios 数据未显示在TableViewController上

Ios 数据未显示在TableViewController上,ios,objective-c,json,ios7,Ios,Objective C,Json,Ios7,我遇到了一个问题,不知道如何解决它,我从我的站点从JSON数据中获取数据,我能够获取数据并在执行NSLog时看到它。数据显示出与我以前所做的略有不同。这就是它看起来的样子 { COLUMNS = ( OCCUPIED, STATIONS, SITEID, NAME, LOCATION, ABBREVNAME, LATITUDE, LONGITUDE ); DATA = { LOCATION

我遇到了一个问题,不知道如何解决它,我从我的站点从JSON数据中获取数据,我能够获取数据并在执行NSLog时看到它。数据显示出与我以前所做的略有不同。这就是它看起来的样子

{
  COLUMNS =     (
    OCCUPIED,
    STATIONS,
    SITEID,
    NAME,
    LOCATION,
    ABBREVNAME,
    LATITUDE,
    LONGITUDE
    );

   DATA =     {
    LOCATION =         (
        "MH 111",
        Roy,
        Morgan,
        "SU 323",
        "SC 262",
        "D3 230",
        "SS 38 Basement",
        "SL 228"
    );
}
如何在TableViewController上显示MH 111。我一直这样做似乎不起作用,结果每次都抛出一个线程1:SIGBRT错误信号,我可以找出原因。这是我在下面的代码,一些东西因为贴在这里而改变了

有一个处理url并获取JSON数据的类

- (void)viewDidLoad {
    [super viewDidLoad];
    [self fetchSites];
}

- (void)fetchSites {
    NSURL *url = [NSURL URLWithString:@"myurlhere"];
    NSData *jsonData = [NSData dataWithContentsOfURL:url];
    NSDictionary *results = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:nil];
    NSArray *sites = [results objectForKey:@"DATA"];
    self.sites = sites;
}
对于tableviewcontroller类,我也有这样一个

- (void)setSites:(NSArray *)sites {
    _sites = sites;
    [self.tableView reloadData];
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
   return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
  return [self.sites count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Site Cell" forIndexPath:indexPath];

NSDictionary *site = self.sites[indexPath.section];
cell.textLabel.text =[site objectForKey:@"LOCATION"];
return cell;
}

另外,我在表视图控制器的.h中有一个名为sites的NSArray属性,这会给我线程1:signal error,我似乎无法找到它,有人能帮忙吗?我还确保标识符正确,tableViewController类正确。

调用
[results objectForKey:@“DATA”]
不会给您提供数组。它为您提供了另一个字典,其中有一个指向所需数组的键(“位置”)

因此,在
fetchSites
do中:

NSArray *sites = results[@"DATA"][@"LOCATION"];
cell.textLabel.text = self.sites[indexPath.row];
然后在
cellforrowatinexpath
do中:

NSArray *sites = results[@"DATA"][@"LOCATION"];
cell.textLabel.text = self.sites[indexPath.row];

顺便说一句-当发布关于崩溃的问题时,始终指出哪一行正在崩溃,并发布完整的错误消息。你可能会很高兴我能帮上忙。不要忘记接受答案来结束你的问题。