Лучший способ получить определенное значение из URL - PullRequest
1 голос
/ 14 декабря 2011

У меня есть следующий URL, из которого я хочу извлечь параметр id:

assets-library: //asset/asset.JPG? Id = 123456789 & ext = JPG

Интересно, есть ли лучший способ выяснить значение для id, чем это:

NSString *id = [[[[def.url.query componentsSeparatedByString:@"id="] 
                          lastObject]
                         componentsSeparatedByString:@"&"] 
                        objectAtIndex:0];

1 Ответ

1 голос
/ 14 декабря 2011

В вашем случае что-то в этом роде, вероятно, будет работать (несколько упрощенно, но работает):

NSString *string = @"assets-library://asset/asset.JPG?id=123456789&ext=JPG";

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"id=([^&]+)" options:NSRegularExpressionCaseInsensitive error:nil];
NSArray *matches = [regex matchesInString:string options:0 range:NSMakeRange(0, string.length)];

NSTextCheckingResult *match = [matches objectAtIndex:0];
NSRange range = [match rangeAtIndex:1];

NSString *idSting = [string substringWithRange:range];
NSLog(@"%@", idSting);
...