我有一个组合数组,即组合API1和API2的新闻标题结果。如何从新组合数组中的每个对象获取“标题文本”?
现在,当我一次只使用其中一个API时,我的应用程序运行正常。但是现在我把对象放在一个组合数组中,我无法弄清楚如何显示cell.headline.text
,因为我从中拉出的源不再是来自同一个JSON(即可能是从API1拉出或者可以从API2中拉出来。)
我正在使用RestKit。
WebListViewController.m(仅使用API1)
- (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(仅使用API2)
- (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];
}
答案 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;