如何在目标c中以名称显示带有空格的图像

时间:2012-09-12 06:43:10

标签: iphone objective-c ipad

我想在Url的imageview中显示图片,并且名称中有空格......

// NSString* imageURL = @"http://dev.squealrs.com/imaging.php/image-name.jpg?height=45&noimg=100&image=/wp-content/uploads/sqbrands/GMT-July-cover1344489425.jpg";

NSString* imageURL = @"http://dev.squealrs.com/imaging.php/image-name.jpg?height=45&noimg=100&image=/wp-content/uploads/sqbrands/Sookie Stackhouse small1343970416.jpg";

NSData* imageData = [[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:imageURL]];

UIImage* image = [[UIImage alloc] initWithData:imageData];
[ImageWithspace setImage:image];

但没有显示图像bcoz未注释imageURL在imagename中包含空格,如果我使用注释的imageURL而不是在imageview中显示图像:( ....给我一些解决方案

4 个答案:

答案 0 :(得分:5)

您需要对网址进行编码:

NSString *encoded = [imageURL stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];

答案 1 :(得分:0)

在使用URL创建NsURL之前,您需要对URL进行编码。有一个内置类可以帮助您编码字符串。

以下是编码与NSURL一起使用的字符串的示例:NSURL Encoding in ObjC

答案 2 :(得分:0)

 NSURL *url = [[NSURL alloc] initWithString:[myurlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

这是因为url中的空格未被处理,因此使用了百分比编码

答案 3 :(得分:0)

 NSString* imageURL = @"http://dev.squealrs.com/imaging.php/image-name.jpg?height=45&noimg=100&image=/wp-content/uploads/sqbrands/Sookie Stackhouse small1343970416.jpg";
NSString *spaceUrl = [[NSString stringWithFormat:imageURL] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
spaceUrl = [spaceUrl stringByReplacingOccurrencesOfString:@" " withString:@"%20"];


NSData* imageData = [[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:spaceUrl]];

UIImage* image = [[UIImage alloc] initWithData:imageData]
    [ImageWithspace setImage:image];

只需复制粘贴此代码即可。如果您还有问题,请随时询问