Replace in NSURL

How to replace string in NSURL ? I tried stringByReplacingOccurrencesOfString but it works with NSString .

 NSURL *imageURL = [NSURL URLWithString:dataList[indexPath.item][@"image"]]; NSData *imageData = [NSData dataWithContentsOfURL:imageURL]; UIImage *image = [UIImage imageWithData:imageData]; 

I want to replace image url

 http://example.com/image1.jpg 

to

 http://example.com/img1.jpg 
+5
source share
3 answers

NSURL has an absoluteString method that you can use like this

 NSURL *imageURL = [NSURL URLWithString:dataList[indexPath.item][@"image"]]; NSString *urlString = [imageURL.absoluteString stringByReplacingOccurrencesOfString:@"image" withString:@"img"]; imageURL = [NSURL URLWithString:urlString]; 

You can also work directly with NSString from the data list:

 NSString *urlString = [dataList[indexPath.item][@"image"] stringByReplacingOccurrencesOfString:@"image" withString:@"img"]; imageURL = [NSURL URLWithString:urlString]; 
+3
source
 NSURL *imageURL = [NSURL URLWithString:dataList[indexPath.item][@"image"]]; NSString *urlString = [imageURL.absoluteString stringByReplacingOccurrencesOfString:@"image" withString:@"img"]; NSString *webStringURL = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; imageURL = [NSURL URLWithString:webStringURL]; 

Hope this helps you.

+2
source

You are about to replace the last component of the URL path, so use the dedicated NSURL API:

 NSURL *imageURL = [NSURL URLWithString:dataList[indexPath.item][@"image"]]; NSURL *newURL = [[imageURL URLByDeletingLastPathComponent] URLByAppendingPathComponent:@"img.jpg"]; NSData *imageData = [NSData dataWithContentsOfURL: newURL]; 

stringByReplacingOccurrencesOfString may cause unexpected behavior.

+1
source

All Articles