在 NSURL 中替换

replace in NSURL

如何在 NSURL 中进行字符串替换? 我试过 stringByReplacingOccurrencesOfString 但它适用于 NSString.

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

我要替换图片 url

http://example.com/image1.jpg

http://example.com/img1.jpg

NSURL 有一个 absoluteString 方法,你可以像这样使用

NSURL *imageURL = [NSURL URLWithString:dataList[indexPath.item][@"image"]];

NSString *urlString = [imageURL.absoluteString stringByReplacingOccurrencesOfString:@"image" withString:@"img"];

imageURL = [NSURL URLWithString:urlString];

你也可以直接操作dataList中的NSString:

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

imageURL = [NSURL URLWithString:urlString];
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];

希望对您有所帮助。

您将替换 URL 的最后一个路径组件,因此使用 NSURL 的专用 API:

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

stringByReplacingOccurrencesOfString 可能会导致意外行为。