我有一张图片网址,我需要从中获取图片。
但是在点击URL之前我需要操纵它。例如:
网址: - http://www.myimages.com/XYZ?wid=50&hei=55&fmt=jpeg&qlt=95&op_sharpen=0&resMode=bicub
我从服务器收到此URL。我怎样才能最好地使用这些参数,用更新的值追加它们,然后转到新建的URL?
答案 0 :(得分:2)
如果您需要替换get参数,可以将该URL字符串存储到可变字符串中,然后使用&yourvar=
查找?yourvar=
或rangeOfString
模式,然后确定变量值结束并替换该值。
或者,我可能会将其拆分使用
comps = [URLstring componentsSeparatedByString:@"?"]
,
然后getParams = [NSMutableArray arrayWithArray:[[comps objectAtIndex:1] componentsSeparatedByString:@"&"]]
最后迭代getParams和var = [NSMutableArray arrayWithArray:[[getParams objectAtIndex:counter] componentsSeparatedByString:@"="]]
。
第一步在URI和GET参数之间进行分割。第二步拆分GET参数。第三步使您可以访问每个参数名称及其值。如果它们与您的搜索匹配,您可以在此步骤修改要修改的变量。
在结束每个处理步骤时,您必须使用[var componentsJoinedByString:@"&"]
为每个处理步骤保存结果。
答案 1 :(得分:0)
如果您的网址已修复,那么您可以轻松提问。
NSString * string = [NSString stringWithFormat:...]; 方法会有所帮助。但在我看来,你的网址也没有修复。这就是你发布问题的原因。
您可以尝试获取“=”和“&”的索引字符。然后,您可以使用NSString类对象方法来获取可以替换的子字符串,这些子字符串将再次为字符串。
或者你可以将字符串转换为const char *然后尝试操作它。
答案 2 :(得分:0)
如果你使用的是iOS7,你可以使用NSURLComponents,看看这个例子:
NSString *urlString = @"https://mail.google.com/mail/u/0";
NSURLComponents *components = [[NSURLComponents alloc] initWithString:urlString];
[components setQuery:@"shva=1"];
其他例子:
//Example One
NSString *urlString = @"https://mail.google.com/mail/u/0/?shva=1#inbox";
NSURLComponents *components = [[NSURLComponents alloc] initWithString:urlString];
NSLog(@"%@ - %@ - %@ - %@", components.scheme, components.host, components.query, components.fragment);
//Example Two
NSString *urlString = @"https://mail.google.com/mail/u/0/?shva=1#inbox";
NSURLComponents *components = [[NSURLComponents alloc] initWithString:urlString];
if (components) {
//good URL
} else {
//bad URL
}
//Example three
NSURLComponents *components = [NSURLComponents new];
[components setScheme:@"https"];
[components setHost:@"mail.google.com"];
[components setQuery:@"shva=1"];
[components setFragment:@"inbox"];
[components setPath:@"/mail/u/0/"];
[self.webview loadRequest:[[NSURLRequest alloc] initWithURL:[components URL]]];
但是使用NSURLComponents你可以做其他事情,检查NSURLComponents的公共界面,官方文档还没有在线提供。