utilizar el método de rangeOfString:
NSRange range = [string rangeOfString:@"id=%"];
if (range.location != NSNotFound)
{
//range.location is start of substring
//range.length is length of substring
}
Luego, puede picar la cadena mediante los substringWithRange:
, substringFromIndex:
y substringToIndex:
métodos para obtener las partes que usted quiera. Aquí hay una solución a su problema específico:
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)
Alternativamente, he aquí una solución general para la extracción de los parámetros de consulta de una URL, que puede ser más útil si se tiene que hacer esto varias veces:
- (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;
}
esto no elimina los caracteres% de los valores, pero se puede hacer que sea con
NSString *value = [[value substringToIndex:[value length] - 1] substringFromIndex:1];
O con algo como
NSString *value = [value stringByReplacingOccurencesOfString:@"%" withString:@""];
ACTUALIZACIÓN: A partir de IOS 8+ theres una clase incorporada llamada NSURLComponents
que puede analizar automáticamente los parámetros de consulta para usted (NSURLComponents
está disponible en iOS 7+, pero el parámetro de consulta de análisis ISN función '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 esto era mi pregunta .. seguirlo – Shubhank
verificación de este enlace. es simple y útil. http://stackoverflow.com/a/5806879/1635315 – iKT