如何在objective-c中用破折号代替空格



嘿,我正在使用一个api,搜索电影现在的问题是,当我在UISearchBar中输入单个单词时,它工作,但当我为另一个单词输入空格时,它不工作。在query=%@附近,当我输入单个单词时,它可以工作,但当我输入另一个带空格的单词时,它不能

NSString *movieName=searchBar.text;
NSString *movieString = [NSString stringWithFormat:@"https://api.themoviedb.org/3/search/movie?query=%@&api_key=c4bd81709e87b1209433c49",movieName];
NSURL *url=[NSURL URLWithString:movieString];

你不需要用破折号代替空格你的URL编码字符串

下面是一个将字符串编码为

的示例
NSString *movieName=searchBar.text;
movieName = [movieName stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLUserAllowedCharacterSet]];
NSString *movieString = [NSString stringWithFormat:@"https://api.themoviedb.org/3/search/movie?query=%@&api_key=c4bd81709e87b1209433c49",movieName];
NSURL *url=[NSURL URLWithString:movieString];

使用

formattedString = [originalString stringByReplacingOccurrencesOfString:@" " withString:@"-"];

请参考此代码。

NSString *movieName=searchBar.text;
NSString* replacedMovieName = [movieName stringByReplacingOccurrencesOfString:@" " withString:@"_"];

不需要用破折号替换空格,需要在创建NSURL之前在string中添加百分号

使用NSString类方法:

-(NSString *)stringByAddingPercentEscapesUsingEncoding:(NSStringEncoding)encoding

,

NSString *movieName=searchBar.text;
//This is what you need
movieName=[movieName stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *movieString = [NSString stringWithFormat:@"https://api.themoviedb.org/3/search/movie?query=%@&api_key=c4bd81709e87b1209433c49",movieName];
NSURL *url=[NSURL URLWithString:movieString];

或者你可以这样做(不是最好的方法):

NSString *movieName=searchBar.text;
//This is what you need
movieName = [movieName stringByReplacingOccurrencesOfString:@" " withString:@"%20"];
NSString *movieString = [NSString stringWithFormat:@"https://api.themoviedb.org/3/search/movie?query=%@&api_key=c4bd81709e87b1209433c49",movieName];
NSURL *url=[NSURL URLWithString:movieString];
NSString *movieName=searchBar.text;
movieName = [movieName stringByReplacingOccurrencesOfString:@" " withString:@"-"];//use vice-versa
NSString *movieString = [NSString stringWithFormat:@"https://api.themoviedb.org/3/search/movie?query=%@&api_key=c4bd81709e87b1209433c49",movieName];
NSURL *url=[NSURL URLWithString:movieString];

相关内容

最新更新