如何保存NSDictionaries?

时间:2012-05-21 17:10:00

标签: iphone objective-c database xcode nsdictionary

请告诉我,我怎么能这样做:

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

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

如果用户想要在应用中添加数千只宠物,该怎么办?我确信,我不应该在代码中为每一种可能的动物创建数以千计的词典。但是我该怎么做? 喜欢Deisy的dictionary1,Bruno的dictionary2,Hamlet等的dictionary3等。

2 个答案:

答案 0 :(得分: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
   }
}

答案 1 :(得分:2)

您需要NSArray来保留NSDictionaries

相关问题