我正在尝试使用网址
为imageview设置图片我尝试了以下代码...
NSString *imgURL = [NSString stringWithFormat:@"http://sahhtna.hardtask.org/Files/Clients/thumb/2e10ec86-f323-4889-a996-00cf6758f354.JPG"];
NSLog(@"imageURL===%@", imgURL);
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:imgURL]];
NSLog(@"=====%@", data);
[myImageView setImage:[UIImage imageWithData:data]];
这很完美。
现在,我尝试了使用Feed中的数据的网址,并在下面尝试过。
NSString *imgURL = [NSString stringWithFormat:@"%@", [[feeds objectAtIndex:indexPath.row] objectForKey:@"Image"]];
NSLog(@"imageURL===%@", imgURL);
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:imgURL]];
NSLog(@"=====%@", data);
[myImageView setImage:[UIImage imageWithData:data]];
这给我输出如下。
2013-08-15 11:22:56.725 Sahhtna[7555:11303] imgURL==http://sahhtna.hardtask.org/Files/Clients/thumb/2e10ec86-f323-4889-a996-00cf6758f354.JPG
2013-08-15 11:22:56.726 Sahhtna[7555:11303] =====(null)
当字符串相同时,我不明白为什么我将数据作为(null)?由于数据为空,我在UIImageView中没有得到任何图像。
知道出了什么问题吗?
当我NSLog(@"[NSURL URLWithString:imgURL]==%@", [NSURL URLWithString:imgURL]);
时,我的输出为[NSURL URLWithString:imgURL]==(null)
我明白了。在字符串的末尾,有Enter(新行)。我该如何删除它?
我得到了解决方案。
有进入和空白区域。
NSString *imgURL = [NSString stringWithFormat:@"%@", [[feeds objectAtIndex:indexPath.row] objectForKey:@"Image"]];
imgURL = [imgURL stringByReplacingOccurrencesOfString:@"\n" withString:@""];
imgURL = [imgURL stringByReplacingOccurrencesOfString:@" " withString:@""];
答案 0 :(得分:1)
有进入和空白区域。下面有诀窍。
NSString *imgURL = [NSString stringWithFormat:@"%@", [[feeds objectAtIndex:indexPath.row] objectForKey:@"Image"]];
imgURL = [imgURL stringByReplacingOccurrencesOfString:@"\n" withString:@""];
imgURL = [imgURL stringByReplacingOccurrencesOfString:@" " withString:@""];
答案 1 :(得分:1)
试试这个,
- (void)viewDidLoad
{
[super viewDidLoad];
NSString *imgURL = [NSString stringWithFormat:@"%@", [[feeds objectAtIndex:indexPath.row] objectForKey:@"Image"]];
[self downloadingServerImageFromUrl:myImageView AndUrl:imgURL];
}
-(void)downloadingServerImageFromUrl:(UIImageView*)imgView AndUrl:(NSString*)strUrl
{
NSString* theFileName = [NSString stringWithFormat:@"%@.jpg",[[strUrl lastPathComponent] stringByDeletingPathExtension]];
NSFileManager *fileManager =[NSFileManager defaultManager];
NSString *fileName = [NSHomeDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"tmp/%@",theFileName]];
imgView.backgroundColor = [UIColor clearColor];
UIActivityIndicatorView *actView = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
[imgView addSubview:actView];
[actView startAnimating];
CGSize boundsSize = imgView.bounds.size;
CGRect frameToCenter = actView.frame;
// center horizontally
if (frameToCenter.size.width < boundsSize.width)
frameToCenter.origin.x = (boundsSize.width - frameToCenter.size.width) / 2;
else
frameToCenter.origin.x = 0;
// center vertically
if (frameToCenter.size.height < boundsSize.height)
frameToCenter.origin.y = (boundsSize.height - frameToCenter.size.height) / 2;
else
frameToCenter.origin.y = 0;
actView.frame = frameToCenter;
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(queue, ^{
NSData *dataFromFile = nil;
NSData *dataFromUrl = nil;
dataFromFile = [fileManager contentsAtPath:fileName];
if(dataFromFile==nil){
NSString *url =[strUrl stringByReplacingOccurrencesOfString:@"\n" withString:@""];
url=[url stringByReplacingOccurrencesOfString:@"\t" withString:@""];
url=[url stringByReplacingOccurrencesOfString:@" " withString:@""];
url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSError* error = nil;
dataFromUrl = [NSData dataWithContentsOfURL:[NSURL URLWithString:url] options:NSDataReadingUncached error:&error];
if (error) {
NSLog(@"%@", [error localizedDescription]);
} else {
}
}
dispatch_sync(dispatch_get_main_queue(), ^{
if(dataFromFile!=nil){
myImageView.image=[UIImage imageWithData:dataFromFile];
}else if(dataFromUrl!=nil){
myImageView.image=[UIImage imageWithData:dataFromUrl];
NSString *fileName = [NSHomeDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"tmp/%@",theFileName]];
BOOL filecreationSuccess = [fileManager createFileAtPath:fileName contents:dataFromUrl attributes:nil];
if(filecreationSuccess == NO){
NSLog(@"Failed to create the html file");
}
}else{
myImageView.image=[UIImage imageNamed:@"no_image.jpg"];
}
[actView removeFromSuperview];
});
});
}
答案 2 :(得分:0)
试试这个:
replaceOccurrencesOfString:@"\\n" withString:@""
replaceOccurrencesOfString:@" " withString:@""