2016-09-07 14 views
5

Jak mogę zmienić ciąg znaków w NSURL? Próbowałem stringByReplacingOccurrencesOfString, ale działa z NSString.zamień w NSURL

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

Chcę zastąpić URL obrazu

http://example.com/image1.jpg 

do

http://example.com/img1.jpg 

Odpowiedz

3

NSURL ma metodę absoluteString że można użyć jak tak

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

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

imageURL = [NSURL URLWithString:urlString]; 

Mogłabyś al tak bezpośrednio działać na NSString z DataList także:

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

imageURL = [NSURL URLWithString:urlString]; 
+0

dzięki. to jest praca – OsamahM

+0

nie ma za co. Przyjmij proszę odpowiedź, jeśli ci to pomoże :) – 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]; 

nadzieję, że to pomoże.

1

Idziesz zastąpić ostatni komponent ścieżki URL więc użyć dedykowanego API NSURL:

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

stringByReplacingOccurrencesOfString może spowodować nieoczekiwane zachowanie.