Преобразование NSString в пару ключ-значение - PullRequest
2 голосов
/ 27 августа 2011

У меня есть ответ от сервера, который является NSString и выглядит так:

resp=handshake&clientid=47D3B27C048031D1&success=true&version=1.0

Я хочу преобразовать его в пару значений ключа, что-то вроде словаря или в массиве.Я не смог найти ни одной полезной встроенной функции для декодирования строки NSStringary в NSdictionary и замены пробела & на не решило мою проблему, кто-нибудь может дать мне какую-либо идею или есть какая-либо функция для этой проблемы?

1 Ответ

8 голосов
/ 27 августа 2011

Это должно сработать (от макушки):

NSMutableDictionary *pairs = [NSMutableDictionary dictionary];

for (NSString *pairString in [str componentsSeparatedByString:@"&"]) {
    NSArray *pair = [pairString componentsSeparatedByString:@"="];

    if ([pair count] != 2)
        continue;

    [pairs setObject:[pair objectAtIndex:1] forKey:[pair objectAtIndex:0]];
}

или вы можете использовать NSScanner, хотя для такой короткой строки, как строка запроса, дополнительная пара массивов не повлияет на производительность.

...