Как получить часть NSString - PullRequest
       15

Как получить часть NSString

1 голос
/ 26 ноября 2010

"http://stackoverflow.com/pqr?name=XYZ&age=26"

например, в приведенной выше строке мне нужно значение имени XYZ. Как это получить?

Ответы [ 2 ]

1 голос
/ 26 ноября 2010

В NSURL есть методы, которые вам нужно будет инициировать из строки, которые могут помочь. Например, - (NSString *) query, который даст вам 'name = XYZ & age = 26'. Затем вы можете использовать componentsSeparatedByString(@"&"), чтобы собрать каждый аргумент и выполнить итерацию по результирующему массиву, пока не получите нужный ключ / значение. Может быть что-то вроде:

NSURL *url = [NSURL URLFromString:incomingString];
NSString *queryString = [url query];
NSArray *queryArray = [queryString componentsSeparatedByString(@"&")];

for (NSString *query in queryArray)
{
  NSArray *arg = [query componentsSeparatedByString(@"=");
  if ([arg count] != 2) continue;

  if ([arg objectAtIndex:0] caseInsensitiveCompare:@"SOME_KEY"] == NSOrderedSame)
  {
    // do something, probably with [arg objectAtIndex:1]
  }

}

Однако вы должны знать о кодировании с входящей строкой. Например, процент сбегает.

1 голос
/ 26 ноября 2010

Попробуйте разбить строку с помощью метода NSString

 - (NSArray *)componentsSeparatedByCharactersInSet:(NSCharacterSet *)separator

Используйте "?", "=" И "&" в качестве разделителей, и тогда вам будет хорошо идти.

...