从组合数组中显示文本标签(使用API​​)

时间:2014-03-14 01:33:59

标签: ios arrays uitableview restkit

我有一个组合数组,即组合API1和API2的新闻标题结果。如何从新组合数组中的每个对象获取“标题文本”?

现在,当我一次只使用其中一个API时,我的应用程序运行正常。但是现在我把对象放在一个组合数组中,我无法弄清楚如何显示cell.headline.text,因为我从中拉出的源不再是来自同一个JSON(即可能是从API1拉出或者可以从API2中拉出来。)

我正在使用RestKit。

WebListViewController.m(仅使用API​​1)

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

    F *fLocal = [hArray objectAtIndex:indexPath.row];
    NSString *headlineText = [NSString stringWithFormat:@"%@", fLocal.headline];
    cell.headlineLabel.text = headlineText;
}

WebListViewController.m(仅使用API​​2)

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

    D *dLocal = [iArray objectAtIndex:indexPath.row];
    NSString *otherHeadlineText = 
    [NSString stringWithFormat:@"%@", dLocal.head.headline];
    cell.headlineLabel.text = otherHeadlineText;
}

WebListViewController.m(尝试合并API1 + API2)

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

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

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// This is where I need help.  Don't know if this line below even makes sense?
    WebListViewController *combinedArray = [array objectAtIndex:indexPath.row];
}

2 个答案:

答案 0 :(得分:1)

您没有说明您的RestKit使用情况,使用核心数据对您来说可能是一个好主意。您还应该考虑将所有对象映射到同一目标对象/实体。

无论如何,您可以合并您的数组以获取仅标题文本的列表:

combinedArray = [hArray valueForKey:@"headline"];
combinedArray = [combinedArray arrayByAddingObjectsFromArray:[iArray valueForKey:@"head.headline"]];

(现在无法测试,第二行可能需要valueForKeyPath:

答案 1 :(得分:0)

为什么要组合数组?

F *fLocal = [hArray objectAtIndex:indexPath.row];
D *dLocal = [iArray objectAtIndex:indexPath.row];

NSString * combinedHeadlineText = [NSString stringWithFormat:@"%@%@", fLocal.headline, dLocal.head.headline];

cell.headlineLabel.text = combinedHeadlineText;