IMO, наиболее подходящий способ сделать то, что вы пытаетесь сделать, это использовать NSMutableDictionary
, который позволяет вам получить доступ к отдельным элементам на основе их ключа.
Пример:
loadedBuffers = [[NSMutableDictionary alloc] initWithCapacity:CD_BUFFERS_START];
[loadedBuffers setObject:bufferId forKey:filePath];
...
[loadedBuffers objectForKey:filePath]
Вам не нужно строго использовать словарь, но это сделает вашу жизнь намного проще.
В вашем случае (если я правильно понимаю) я бы сделал:
NSMutableArray* result = [NSArray arrayWithCapacity:kNUM_OF_ROWS];
NSString *name, *age, *sex....;
<for each set of strings from the web service>
<retrieve strings>
NSMutableDictionary dict = [NSMutableDictionary dictionaryWithCapacity:kNUM_OF_FIELDS];
[dict setObject:name forKey:@"name"];
...
[dict setObject:address forKey:@"address"];
[result addObject:dict];
<end_for>
return result;
Поступив так, вы сможете последовательно обращаться к каждому набору строк; затем получите доступ к каждой строке по отдельности.
Короче говоря, вместо того, чтобы кодировать ваш набор строк путем объединения их в другую строку, вы бы расширили их в словаре, чтобы упростить поиск.