iOS:NSString丢失URL,显示(null)

时间:2012-06-01 13:35:43

标签: ios xcode url nsstring null

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

NSString *listedImageURL = listedProduct.image;

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

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

NSString *listedImageURL = listedProduct.image;

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

我做错了什么?

2 个答案:

答案 0 :(得分:5)

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

  

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

如果您要发布一些您要转换的网址示例,我认为识别哪些字符可能会对您造成问题会很有帮助。

我建议记录:listedImageURL

然后还在运行:

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

然后记录下来。

这应该让你看到被逃脱的内容和错过的内容。它可以像杂散空间一样简单。

你也可以尝试使用NSASCIIStringEncoding而不是NSUTF8StringEncoding,看看是否有所作为。

答案 1 :(得分:2)

它可以为null,因为你的字符串是url转换。

请尝试以下代码;

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

会对你有用。祝你好运。