0

我使用 AFNetworking 从我的 rails api 获取啤酒详细信息,并且我想显示来自返回的 url 的图像。

示例 API 响应

    description = "Super tasty";
    id = 3;
    "label_url" = "/system/beers/labels/000/000/003/medium/Pliny.png?1363034728";
    "location_id" = 2;
    name = "Pliny The Elder";
    price = "3.5";
    style = IPA;

label_url 是图像的 url,我试图在 BeerDetailViewController 中显示。这是我迄今为止尝试过的,它没有错误但没有图像显示。

BeerDetailViewController.m

#import "UIImageView+AFNetworking.h"
#import "AFImageRequestOperation.h"

- (void)viewDidLoad
{
    [super viewDidLoad];

    beerLabel.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:
                                              [NSURL URLWithString: beer_label]]];

任何想法为什么它不起作用?我可以在这个视图中显示 url,beerLabel.text = beer_label这样我就知道它正在通过并阅读以供使用,只是不确定为什么它不显示图像。

4

2 回答 2

5
/system/beers/labels/000/000/003/medium/Pliny.png?1363034728

不是有效的 URL。说真的,穷人怎么会NSURL知道NSData你在找什么主人?您需要使用主机和此路径构造一个正确的 URL 字符串。

于 2013-03-11T21:15:29.257 回答
0

您所拥有的只是 URL 的路径部分。您想根据正确的基本 URL 解决此问题。因此,假设您的服务器是example.com. 要解决它:

NSURL *base = [NSURL URLWithString:@"http://example.com"];
NSURL *resolved = [NSURL URLWithString:beer_label relativeToURL:base];
于 2013-04-09T13:25:12.123 回答