&
URL から返されたクエリを andで分割し、=
それらを辞書に入れることができます。
NSURL *url = [NSURL URLWithString:@"myApp://?q=200"];
NSArray *query = [[url query] componentsSeparatedByString:@"&"];
NSMutableDictionary *parameters = [NSMutableDictionary dictionaryWithCapacity:[query count]];
for(NSString *parameter in query)
{
NSArray *kv = [parameter componentsSeparatedByString:@"="];
[parameters setObject:[kv count] > 1 ? [[kv objectAtIndex:1] stringByReplacingPercentEscapesUsingEncoding:NSISOLatin1StringEncoding] : [NSNull null]
forKey:[[kv objectAtIndex:0] stringByReplacingPercentEscapesUsingEncoding:NSISOLatin1StringEncoding]];
}
NSLog(@"Parameters: %@", parameters);
NSLog(@"q = %@", [parameters objectForKey:@"q"]);
この例では、パラメーターに値がない場合は、 に設定しましたNSNull
。NSNull
これは、値を持つキーをスキップするか、空の文字列に設定するロジックを確認または変更する必要があることを意味します。