我从Web服务中检索6个值(例如名称,年龄,性别,地址,ID,标记)。所有都是字符串变量。我将这些字符串连接起来并将其添加到NSMutableArray
。我将这个数组传递给另一个类,我需要分别使用这些字符串。那就是我需要能够分别从数组中检索这些值。我怎样才能做到这一点。
我是否需要添加“名称”,“年龄”等标签以及值以使检索更容易。什么是适当的方式。
编辑:我将它连接成一个字符串。我应该如何将我的值添加到集合中,以便我可以轻松地检索元素。
答案 0 :(得分:3)
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;
通过这样做,您将能够按顺序访问每组字符串;然后单独访问每个字符串。
简而言之,不是通过将它们连接成另一个字符串来编码您的字符串集,而是将它们扩展到字典中以使检索更容易。
答案 1 :(得分:0)
我同意这里的最佳做法是使用字典或自定义对象。这样每个字符串都会与其同伴一起存储(例如,您将一个人的数据放在一起),而且您不必处理已经实现的混乱方法。听起来你可能想要保存数据,所以这里有一个片段来帮助你。如果那不是你想要的,请告诉我,我会修改我的回复以帮助你!
假设您有一个自定义对象类Person,您可以在其中创建和管理数据对象以通过应用程序委托保存到磁盘。你会做类似的事情:
Person *newPerson = [[Person alloc] init];
[newPerson setName:@"John"];
[newPerson setAge:@"25"];
[newPerson setSex:@"M"];
[yourAppDelegate.newPersonArray insertObject:newPerson atIndex:[mainDelegate.newPersonArray count]];