1

到目前为止,这是我的代码:

NSString *listedImageURL = listedProduct.image;

NSLog(@"URL: %@", listedImageURL);

此代码工作正常,NSLog 向我显示了正确的 URL。但是当我尝试以下代码时, NSLog 显示(空):

NSString *listedImageURL = listedProduct.image;

NSURL *imageURL = [NSURL URLWithString:listedImageURL];
NSData *imageData = [NSData dataWithContentsOfURL:imageURL];
UIImage *image = [UIImage imageWithData:imageData];

我究竟做错了什么??

4

2 回答 2

5

我相信 relower 是在正确的轨道上,文档指出:

此方法要求 URLString 包含任何必要的百分比转义码,它们是 ':'、'/'、'%'、'#'、';' 和 '@'。请注意,“%”转义是通过 UTF-8 转换的。

我相信,如果您要发布一些您正在转换的 URL 示例,那么确定哪些字符可能会给您带来问题会很有帮助。

我建议记录:listedImageURL

然后也运行:

NSString *escapedImageUrl = [listedProduct.image stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

然后记录。

这应该让你看到什么被逃避了,什么被错过了。它可以像杂散空间一样简单。

您也可以尝试使用 NSASCIIStringEncoding 而不是 NSUTF8StringEncoding ,看看是否有区别。

于 2012-06-01T14:21:44.850 回答
2

它可以为空,因为您的字符串到 url 的转换。

试试下面的代码;

NSString *listedImageURL = [listedProduct.image stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *imageURL = [NSURL URLWithString:listedImageURL];
NSData *imageData = [NSData dataWithContentsOfURL:imageURL];
UIImage *image = [UIImage imageWithData:imageData];

我想会为你工作。祝你好运。

于 2012-06-01T13:40:20.500 回答