在UITableView中显示Json结果

Cli*_*iff 0 json objective-c uitableview ios

我试图把我的JSON结果放在我的UITableView.我得到了JSON但我不能把它们放到我的桌面视图中.知道我做错了什么吗?

这是一些相关的代码:

- (void)viewDidLoad {
    TitlosArray = [[NSMutableArray alloc] init];
    KeimenoArray = [[NSMutableArray alloc] init];
    [super viewDidLoad];
    [self fetchTweets];
}
Run Code Online (Sandbox Code Playgroud)

我的JSON解析器工作正常:

- (void)fetchTweets {
    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

    dispatch_async(queue,  ^{
        NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://myselection.gr/support3/frontistiria_project/android_data.php/?type=publicNews"]];

        [self performSelectorOnMainThread:@selector(fetchedForecast:)withObject:data waitUntilDone:YES];
    });
}

- (void)fetchedForecast:(NSData *)responseData {
    NSError *error;
    NSDictionary *json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];

    NSLog(@"Rows %@", [json objectForKey:@"total_rows"]);
    NSArray *items = [json valueForKeyPath:@"content"];

    NSEnumerator *enumerator = [items objectEnumerator];
    titlosjson.text=[[items objectAtIndex:1] objectForKey:@"title"];
    Keimenojson.text=[[items objectAtIndex:1] objectForKey:@"descr"];

    while (item = (NSDictionary*)[enumerator nextObject]) {
        [TitlosArray addObject:[item objectForKey:@"title"]];
        [KeimenoArray addObject:[item objectForKey:@"descr"]];
        NSLog(@"Title = %@", [item objectForKey:@"title"]);
        NSLog(@"Descr = %@",[item objectForKey:@"descr"]);
    }

    NSLog(@"%@",[TitlosArray objectAtIndex: 1]);
    myArray = [NSArray arrayWithArray:TitlosArray ];
    NSLog(@"%@", [myArray objectAtIndex: 2]);
}
Run Code Online (Sandbox Code Playgroud)

但我对我有问题UITableView:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return myArray.count;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"TweetCell";

    UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    //cell.textLabel.text = [NSString stringWithFormat:@"by %@", text];
    return cell;
}
Run Code Online (Sandbox Code Playgroud)

rdu*_*and 6

您正在创建空单元格,因此不会显示您的内容.

尝试用以下cellForRowAtIndexPath:方法替换您的方法:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"TweetCell";

    UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    cell.textLabel.text = [TitlosArray objectAtIndex:indexPath.row];

    return cell;
}
Run Code Online (Sandbox Code Playgroud)