-->

的iOS:NSString的失去URL,(空)被示出(iOS: NSString loses URL

2019-10-16 19:27发布

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

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];

我究竟做错了什么??

Answer 1:

我相信,relower是在正确的轨道上,文件规定:

这种方法预计URLString包含任何必需的百分之转义码,它们是 ':', '/', '%', '#', ';',和 '@'。 请注意,“%”逃逸是通过UTF-8翻译。

我相信,如果你发布的是要转换的URL的一些例子这将有助于确定哪些字符可能会引起你的问题。

我建议记录:listedImageURL

然后还运行:

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

然后日志。

这应该让你看到的是什么逃脱,什么是被错过。 它可以作为一个流浪空间一样简单。

你也可以尝试使用NSASCIIStringEncoding代替NSUTF8StringEncoding,看看是否有差别。



Answer 2:

它可以是空的,因为你的字符串URL皈依的。

试试下面这段代码;

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

会为你工作,我认为。 祝好运。



文章来源: iOS: NSString loses URL, (null) is shown