在UIImage中获取并显示facebook个人资料图片

时间:2013-04-03 00:22:30

标签: iphone ios objective-c

我正在尝试制作一个Facebook好友选择器,显示当前安装了该应用的朋友,这些朋友也是当前用户的Facebook好友。

在这里,我正在获取用户的Facebook个人资料图片,但是,我似乎有一个警告,其中不使用最后一个语句。谢谢你的帮助。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"friendCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
    PFUser *facebookID = [[PFUser alloc] init];
    facebookID = [friendUsers objectAtIndex:0];
    NSString *fbIdString = [[NSString alloc] init];
    fbIdString = [facebookID objectForKey:@"fbId"];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
        NSURL *profilePictureURL = [NSURL URLWithString:[NSString stringWithFormat:@"https://graph.facebook.com/%@/picture?type=large", fbIdString]];
        NSData *picData = [NSData dataWithContentsOfURL:profilePictureURL];
        UIImage *fbPic = (UIImage *)[self.view viewWithTag:1001];
        [fbPic initWithData:picData];

    }



    // Configure the cell...

    return cell;
}

2 个答案:

答案 0 :(得分:0)

您需要将initWithData:来电的结果实际分配给fbPic图片。 E.g。

fbPic = [fbPic initWithData: picData];

来自apple documentation on UIImage

- (id)initWithData:(NSData *)data

<强>参数

  • 数据 - 包含图像数据的数据对象。

返回值

  • 初始化的UIImage对象,如果方法无法从指定数据初始化图像,则为nil。

答案 1 :(得分:0)

有几件事:

  1. UIImage *fbPic = (UIImage *)[self.view viewWithTag:1001]; - 我想你是想从单元格中获取UIImageView?
  2. 您实际上没有显示图像的UIImageView。
  3. 它应该是这样的:

    if (cell == nil) {
            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
            NSURL *profilePictureURL = [NSURL URLWithString:[NSString stringWithFormat:@"https://graph.facebook.com/%@/picture?type=large", fbIdString]];
            NSData *picData = [NSData dataWithContentsOfURL:profilePictureURL];
            UIImageView *fbPicImageView = (UIImageView *)[self.view viewWithTag:1001];
            [fbPicImageView setImage:[UIImage imageWithData:picData]];
        }