2016-09-07 5 views
5

Как заменить строку в NSURL? Я пробовал stringByReplacingOccurrencesOfString, но он работает с NSString.заменить в NSURL

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 

ответ

3

NSURL имеет absoluteString метод, который можно использовать как так

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

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

imageURL = [NSURL URLWithString:urlString]; 

Вы могли Аль так непосредственно действуют на NSString из DataList, а также:

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

imageURL = [NSURL URLWithString:urlString]; 
+0

спасибо. это работа – OsamahM

+0

, пожалуйста. любезно принимайте ответ, если он вам помог :) – akdsouza

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

Надежда Это поможет вам.

1

Вы собираетесь заменить последний путь компонент URL, поэтому используйте специальный API из NSURL:

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

stringByReplacingOccurrencesOfString может привести к непредсказуемому поведению.