0

你能告诉我吗,我怎么能做这样的事情:

例如,我有一个应用程序,其中包含有关您的宠物的信息。但首先,您应该将宠物添加到数据库中。在特殊视图中,您输入宠物的姓名、年龄、品种、颜色等(键),然后保存。我们到了,现在您在应用程序中拥有了您的第一只宠物。但是你想添加新的宠物...

如何使用相同的键保存所有这些字典?您不知道如何创建字典,因为您不知道用户想要在应用程序中添加多少宠物。最简单的方法是什么?

如果用户想在应用程序中添加数千只宠物怎么办?我敢肯定,我不应该在代码中为每种可能的动物创建数千个字典。但我该怎么做呢?像 Deisy 的 dictionary1、Bruno 的 dictionary2、Hamlet 的 dictionary3 等等。

4

2 回答 2

4

以下是它如何工作的粗略描述:

您需要在某个地方定义一个集合来保存这些宠物。

NSMutableSet *myPets = [[NSMutableSet alloc] init];

当用户输入数据并按下保存按钮时,视图控制器中会调用一些方法。在该方法中,您可以收集数据,如下所示:

NSDictionary *pet = [NSDictionary dictionaryWithObjectsAndKeys:nameField.text, @"name", breedField.text,@"breed", nil];
[myPets addObject:pet];

此时pet已经放入myPets NSMutableSet,编译器会释放它,所以它不再存在了。下次用户输入数据并再次按下按钮时,pet将创建一个新的并放入myPets. 不要担心创建数百万个实例,编译器会处理它。

如果您想在之后检索个别宠物,您可以执行以下操作

for (NSDictionary *aPet in myPets) {
   if ([[aPet objectForKey:@"name"] isEqualToString:@"Lassie"]) {
      // do what you want to do with Lassie
   }
}
于 2012-05-21T17:21:11.227 回答
2

你需要一个NSArray来持有NSDictionaries

于 2012-05-21T17:31:03.353 回答