• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

iphone - 我可以更快地提出请求吗? ( Facebook 图 api)

[复制链接]
菜鸟教程小白 发表于 2022-12-12 20:20:55 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我制作了下面的代码来获取我的异性 friend 的信息。
首先,我发送了获取所有 friend ID 的请求。我再次发送请求以获取 friend 的信息(姓名、照片等)。
但我有 350 个 friend ,我发送了 350 个请求。 1分钟真的很慢。
我可以让这个过程更快吗?

- (void)requestFBRequest *)request didLoadid)result
{
if (request == requestFriends) {
    NSMutableArray *tempKeys = [NSMutableArray array];

    for (NSDictionary *dic in [result objectForKey"data"]) {
        [tempKeys addObject:[dic objectForKey"id"]];
    }

    NSMutableDictionary *params = [NSMutableDictionary dictionary];

    if ([self.myGender isEqualToString"male"]) {
        params = [NSMutableDictionary dictionaryWithObjectsAndKeys"id,name,gender,age,location", @"field", nil];
    } else if ([self.myGender isEqualToString"female"]) {
        params =[NSMutableDictionary dictionaryWithObjectsAndKeys"id,name,age,gender,work,school", @"field", nil];
    }

    for (NSString *key in tempKeys) {
        [requestArray addObject: [delegate.facebook requestWithGraphPath:key andParams:params andDelegate:self]];
    }

    i = tempKeys.count;
} else if (request == self.myPicRequest) { //고화질 프로필 사진 받아오는 부분
    NSArray *arr = [result objectForKey"data"];
    for (NSDictionary *result in arr) {
        if([[result objectForKey"type"]isEqualToString"profile"]) {
            profileRequest = [delegate.facebook requestWithGraphPath:[result objectForKey"cover_photo"] andDelegate:self]; //프로필의 아이디로 다시 리퀘스트
        }
    }
} else if (request == self.profileRequest) {
    NSURL *url = [NSURL URLWithString:[[[result objectForKey:@"images"] objectAtIndex:3] objectForKey:@"source"]];
    UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:url]];
    CGRect rect = CGRectMake(0, 60, 360, 360); //중간부분을 크롭
    [self.candidatePicArray addObject:[self imageByCropping:image toRect:rect]];
    NSLog(@"이미지들어간다");
} else {         
    for (FBRequest *req in requestArray) {
        if (request == req) {
            if (![[result objectForKey:@"gender"]isEqual:myGender]) {
                [candidateIdArray addObject:[result objectForKey:@"id"]];
                [candidateNameArray addObject:[result objectForKey:@"name"]];

                myPicRequest = [delegate.facebook requestWithGraphPath:[NSString stringWithFormat:@"%@/albums", [result objectForKey:@"id"]] andDelegate:self];

                if ([result objectForKey:@"birth"]) {
                [candidateAgeArray addObject:[result objectForKey:@"birth"]];
                }

                if ([result objectForKey:@"Location"]) {
                [candidateLocationArray addObject:[[result objectForKey:@"Location"] objectForKey:@"name"]]; 
                }

                if ([[result objectForKey:@"work"] objectAtIndex:0]) {
                [candidateWorkArray addObject:[[[[result objectForKey:@"work"] objectAtIndex:0] objectForKey:@"employer"] objectForKey:@"name"]];
                }
                NSLog(@"girl!");
            }
            j++;
//                NSLog(@"candidateNameArray : %@", [result objectForKey:@"name"]);
        }
    }
}

NSLog(@"i = %d, j = %d", i , j);
[progressView setProgressfloat)(j/i) animated:YES]; 

if(i == j) {
    [self performSegueWithIdentifier:@"SEGUE_START" sender:nil];
}

}



Best Answer-推荐答案


在关于 SO 的其他问题中有一些关于批处理请求的线索:

Batch calls with Facebook Graph API & PHP

虽然它使用 php 你可能会得到一些线索。

关于iphone - 我可以更快地提出请求吗? ( Facebook 图 api),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10203474/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap