来自两个API的一个表视图

Realinstomp

有没有办法让我用两个单独的Web API填充一个UITableView我敢肯定有,但是我不太清楚。

目前,我正在从一种Web API中完美地提取信息。但是我需要从不同的方面汲取经验,然后将它们合并为一个UITableView

(我正在使用RestKit)

(我要集成的第二个API是Instagram,它将从用户帐户中提取图片/文字)

AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // RestKit
    NSString *baseURL = @"http://api.firstwebsite.com/v1";
    RKObjectManager *manager = [RKObjectManager sharedManager];

    if (!manager) {
        manager = [RKObjectManager objectManagerWithBaseURLString:baseURL];
        manager.client.serviceUnavailableAlertEnabled = YES;
        manager.requestQueue.showsNetworkActivityIndicatorWhenBusy = YES;
    } else {
        manager.client.baseURL = [RKURL URLWithString:baseURL];
    }

    return YES;
}

WebListViewController.m

- (void)viewDidLoad
{
    [super viewDidLoad];
    [[RKObjectManager sharedManager] loadObjectsAtResourcePath:
    [NSString stringWithFormat:
    @"/something/?limit=100&something=%@&something=%@&apikey=xxxx", var1, var2]
    usingBlock:^(RKObjectLoader *loader) {
        loader.onDidLoadObjects = ^(NSArray *objects){

            hArray = objects;

            [_tableView reloadData];

        };
        [loader.mappingProvider setMapping:[Fe mapping] forKeyPath:@"fe"];
        loader.onDidLoadResponse = ^(RKResponse *response){
            //NSLog(@"BodyAsString: %@", [response bodyAsString]);
        };
    }];
}

我假设我需要在中做一些不同的事情AppDelegate.mbaseURL因为它将有两个不同的基本URL。

谢谢!将根据需要发布任何额外的代码!

编辑

根据alexandresoli的回答,这是到目前为止我已更新的内容,但仍需要以下方面的帮助:

WebListViewController.m

@property (strong, nonatomic) NSMutableArray *array;
@synthesize array;

- (void)callBothURLs {
    // Call both #1 and #2 URL, not sure what specific code goes here
}

- (void)viewDidLoad {
    [self callBothURLs];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    // This is what I currently have, was pulling from a `Headlines` `NSArray` from web #1
    return headlinesArray.count;
    // I believe I need to change it to this next line...
    //return array.count;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    // Not sure what to put here with the new `NSMutableArray`
}

编辑2

我已经为第一个网站设置了对象映射,因此我可以轻松地为Instagram API做到这一点。我所有的困惑/问题似乎都在WebListViewController中。无论如何,这里是一个映射示例。

映射

@interface Mapping : NSObject

@property (nonatomic, strong) Links *links;
@property (nonatomic, strong) NSString *headline;
@property (nonatomic, strong) NSArray *images;

+ (RKObjectMapping *) mapping;

@end

制图

@implementation Mapping

+ (RKObjectMapping *)mapping {
    RKObjectMapping *objectMapping = [RKObjectMapping mappingForClass:[self class] usingBlock:^(RKObjectMapping *mapping) {
        [mapping mapKeyPathsToAttributes:
         @"headline", @"headline",
         nil];
        [mapping hasMany:@"images" withMapping:[Images mapping]];
    }];

    return objectMapping;
}

@end
亚历山大索利

创建一个调用两个URL的方法,并使用addObject方法将每个URL的结果存储在同一NSMutableArray中。

NSMutableArray *array = [NSMutableArray new];

// for each object from URL 1, call [array addObject:object];

// for each object from URL 2, call [array addObject:object];

将此数组用作表视图的数据源;

根据要求更新:

  • 您可以从viewDidLoad调用populateBothUrlsMethod。
  • 之后,对这个新的填充数组使用常规的uitableview数据源方法numberOfSectionsInTableView和numberOfRowsInSection。

更新2:

- (void)viewDidLoad
{
    [super viewDidLoad];


    _array = [NSMutableArray new];


    // fetch data from url 1
    NSArray *arrayUrl1 = [self fetchUrl1];


    // add url1 data to array
    for (NSString *str in arrayUrl1) {
        [_array addObject:str];
    }


    // fetch data from url 2
    NSArray *arrayUrl2 = [self fetchUrl2];

    // add url2 data to array
    for (NSString *str in arrayUrl2) {
        [_array addObject:str];
    }

}


- (NSArray *)fetchUrl1
{
    return [NSArray array];
}

- (NSArray *)fetchUrl2
{
    return [NSArray array];
}

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

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    // total number of objects in array
    return [_array count];
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将来自两个单独的Firebase节点的数据加载到一个表视图单元中

来自分类Dev

一个视图控制器中的两个表视图,一个表视图未显示

来自分类Dev

在一个SQL查询中合并(合并)来自两个表的两列

来自分类Dev

MVC在一个视图中保存来自两个模型的数据

来自分类Dev

根据来自其他两个表的数据更新一个表

来自分类Dev

根据来自其他两个表的数据更新一个表

来自分类Dev

创建一个带有来自两个 SQL 表的标题的 HTML 表

来自分类Dev

MySQL 查询根据来自两个不同表的值选择一个表。

来自分类Dev

一个视图控制器中的两个表视图,快速

来自分类Dev

MySQL一个结果来自同一表中的两个查询

来自分类Dev

具有两个外键的表来自一个主键

来自分类Dev

如何在一个查询中计算来自两个表的行?

来自分类Dev

如何在一个查询中更新来自不同表的两个记录?

来自分类Dev

如何在一个查询中计算来自两个表的行?

来自分类Dev

Rails:来自一个表/模型的两个引用

来自分类Dev

如何选择一个可以来自两个不同表的值?

来自分类Dev

创建一个包含来自两个不同数据表的两个字段的数组

来自分类Dev

来自一个列表的两个组合列表

来自分类Dev

比较来自一个来源的两个管道

来自分类Dev

具有来自不同模型的数据但显示在同一个视图上的两个部分视图

来自分类Dev

我想在一个视图中显示两个表中的数据

来自分类Dev

CodeIgniter:在视图中显示两个表中的数据-使用一个循环?

来自分类Dev

如何在一个UIviewController中添加两个表视图

来自分类Dev

将两个表中的数据合并到一个视图中

来自分类Dev

从一个视图编辑两个表的值。姜戈

来自分类Dev

将来自两个不同表的2个值插入到一个表中

来自分类Dev

将来自两个不同表的2个值插入到一个表中

来自分类Dev

使用一个控制器和一个视图在两个表中插入数据

来自分类Dev

AngularJS:两个并行视图,一个URL

Related 相关文章

  1. 1

    将来自两个单独的Firebase节点的数据加载到一个表视图单元中

  2. 2

    一个视图控制器中的两个表视图,一个表视图未显示

  3. 3

    在一个SQL查询中合并(合并)来自两个表的两列

  4. 4

    MVC在一个视图中保存来自两个模型的数据

  5. 5

    根据来自其他两个表的数据更新一个表

  6. 6

    根据来自其他两个表的数据更新一个表

  7. 7

    创建一个带有来自两个 SQL 表的标题的 HTML 表

  8. 8

    MySQL 查询根据来自两个不同表的值选择一个表。

  9. 9

    一个视图控制器中的两个表视图,快速

  10. 10

    MySQL一个结果来自同一表中的两个查询

  11. 11

    具有两个外键的表来自一个主键

  12. 12

    如何在一个查询中计算来自两个表的行?

  13. 13

    如何在一个查询中更新来自不同表的两个记录?

  14. 14

    如何在一个查询中计算来自两个表的行?

  15. 15

    Rails:来自一个表/模型的两个引用

  16. 16

    如何选择一个可以来自两个不同表的值?

  17. 17

    创建一个包含来自两个不同数据表的两个字段的数组

  18. 18

    来自一个列表的两个组合列表

  19. 19

    比较来自一个来源的两个管道

  20. 20

    具有来自不同模型的数据但显示在同一个视图上的两个部分视图

  21. 21

    我想在一个视图中显示两个表中的数据

  22. 22

    CodeIgniter:在视图中显示两个表中的数据-使用一个循环?

  23. 23

    如何在一个UIviewController中添加两个表视图

  24. 24

    将两个表中的数据合并到一个视图中

  25. 25

    从一个视图编辑两个表的值。姜戈

  26. 26

    将来自两个不同表的2个值插入到一个表中

  27. 27

    将来自两个不同表的2个值插入到一个表中

  28. 28

    使用一个控制器和一个视图在两个表中插入数据

  29. 29

    AngularJS:两个并行视图,一个URL

热门标签

归档