Как извлечь данные из NSURL

У меня есть следующее NSSURL:

myURL - myPlatform://sdk/functionName?key1=value1&key2=value2

Как я могу получить компоненты URL?

NSString *myPlatform = [myURL...?
NSString *functionName = [myURL...?
NSString *key1 = [myURL...?
NSString *value1 = [myURL...?
NSString *key2 = [myURL...?
NSString *value2 = [myURL...?

У меня есть этот код:

- (BOOL)webView:(UIWebView *)webView2 shouldStartLoadWithRequest:(NSURLRequest *)request     navigationType:(UIWebViewNavigationType)navigationType {
    NSURL *url= [request URL];
    Log(@"url: %@", url);
    NSArray *components = [url pathComponents];  
    for (NSString *c in components)
        Log(@"URL component: %@", c);
}

А это в логе :url:

URL-адрес: myPlatform://sdk/имя_функции?key1=value1&key2=value2

компонент: /

компонент: имя_функции

заранее спасибо


person Luda    schedule 30.07.2012    source источник


Ответы (1)


Это в документации:

NSString *myPlatfrom = [myURL scheme];
NSString *sdk = [myURL host];
NSString *functionName = [[myURL path] substringFromIndex:1];
NSString *query = [myURL query];
for (NSString *arg in [query componentsSeparatedByString:"&"]) {
    NSArray argComponents = [arg componentsSeparatedByString:"="];
    NSString key = [argComponents[0] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    NSString value = [argComponents[1] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
}
person Nikolai Ruhe    schedule 30.07.2012