Użyj metody rangeOfString:
NSRange range = [string rangeOfString:@"id=%"];
if (range.location != NSNotFound)
{
//range.location is start of substring
//range.length is length of substring
}
Można następnie posiekać ciąg używając substringWithRange:
, substringFromIndex:
i substringToIndex:
metod, aby uzyskać bity chcesz. Oto rozwiązanie konkretnego problemu:
NSString *param = nil;
NSRange start = [string rangeOfString:@"id=%"];
if (start.location != NSNotFound)
{
param = [string substringFromIndex:start.location + start.length];
NSRange end = [param rangeOfString:@"%"];
if (end.location != NSNotFound)
{
param = [param substringToIndex:end.location];
}
}
//param now contains your value (or nil if not found)
Alternatywnie, oto rozwiązanie ogólne dla wydobywania parametry zapytania z adresu URL, który może być bardziej przydatna, gdy trzeba zrobić to kilka razy:
- (NSDictionary *)URLQueryParameters:(NSURL *)URL
{
NSString *queryString = [URL query];
NSMutableDictionary *result = [NSMutableDictionary dictionary];
NSArray *parameters = [queryString componentsSeparatedByString:@"&"];
for (NSString *parameter in parameters)
{
NSArray *parts = [parameter componentsSeparatedByString:@"="];
if ([parts count] > 1)
{
NSString *key = [parts[0] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *value = [parts[1] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
result[key] = value;
}
}
return result;
}
to nie pozbawić% znaków od wartości, ale można to zrobić albo z
NSString *value = [[value substringToIndex:[value length] - 1] substringFromIndex:1];
albo coś podobnego
NSString *value = [value stringByReplacingOccurencesOfString:@"%" withString:@""];
UPDATE: W iOS 8+ tam wbudowany w klasie o nazwie NSURLComponents
że może automatycznie analizować parametry zapytań dla Ciebie (NSURLComponents
jest dostępny na iOS 7+, ale parametr zapytania analizowania funkcji ISN "t).
[http://stackoverflow.com/questions/8484826/retrieving-particular-lines-of-text-from-string-memory-management-issues][1] [1] : http://stackoverflow.com/questions/8484826/retrieving-particular-lines-of-text-from-string-memory-management-issues To było moje pytanie .. podążaj za nim – Shubhank
sprawdź ten link. jest prosty i użyteczny. http://stackoverflow.com/a/5806879/1635315 – iKT