Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何保存词典?_Iphone_Objective C_Database_Xcode_Nsdictionary - Fatal编程技术网

Iphone 如何保存词典?

Iphone 如何保存词典?,iphone,objective-c,database,xcode,nsdictionary,Iphone,Objective C,Database,Xcode,Nsdictionary,请告诉我,我怎样才能做出这样的东西: NSDictionary *pet = [NSDictionary dictionaryWithObjectsAndKeys:nameField.text, @"name", breedField.text,@"breed", nil]; [myPets addObject:pet]; 例如,我有一个包含宠物信息的应用程序。但首先,您应该将宠物添加到数据库中。在特殊视图中,输入宠物的姓名、年龄、品种、颜色等(键),然后保存。我们到了,现在你有了应用程序中的

请告诉我,我怎样才能做出这样的东西:

NSDictionary *pet = [NSDictionary dictionaryWithObjectsAndKeys:nameField.text, @"name", breedField.text,@"breed", nil];
[myPets addObject:pet];
例如,我有一个包含宠物信息的应用程序。但首先,您应该将宠物添加到数据库中。在特殊视图中,输入宠物的姓名、年龄、品种、颜色等(键),然后保存。我们到了,现在你有了应用程序中的第一只宠物。但是你想添加新的宠物

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

如果用户想在应用程序中添加数千只宠物,该怎么办?我确信,我不应该为每一种可能的动物在代码中创建成千上万的字典。但是我该怎么做呢?
像《神仙》的1号词典、布鲁诺的2号词典、哈姆雷特的3号词典等等。

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

在某个地方,你需要定义一个集合来存放宠物

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
   }
}

以下是对其工作原理的粗略描述:

在某个地方,你需要定义一个集合来存放宠物

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
   }
}

你需要一个
NSArray
来保存
nsdictionary

你需要一个
NSArray
来保存
nsdictionary

看起来不错,但我不知道有多少字典可以像某个宠物和另一个宠物一样创建。我的意思是,用户添加了一个新的宠物(一本新字典),但这本字典的名称是什么,这样我就可以将它保存到NSMutableSet中?@SmartTree如果这真的是你的问题,你应该做更多的基本工作。@SmartTree,我相应地修改了我的答案。@SmartTree,我再次修改了我的答案。非常感谢,现在我明白它是如何工作的了。完美的看起来不错,但我不知道要创建多少字典,比如somePet和someOtherPet。我的意思是,用户添加了一个新的宠物(一本新字典),但这本字典的名称是什么,这样我就可以将它保存到NSMutableSet中?@SmartTree如果这真的是你的问题,你应该做更多的基本工作。@SmartTree,我相应地修改了我的答案。@SmartTree,我再次修改了我的答案。非常感谢,现在我明白它是如何工作的了。完美的是的,但是我如何为每一只宠物创建字典呢?我的意思是,用户可以添加数千个宠物,我确信我不应该在代码中创建数千个字典。谢谢实际上,您应该将其存储在CoreData中。只将字典用作“保存对象”,用于记录有关宠物的故事所需的数据。然后,当用户“保存”或发生导致“保存”的其他事件时,将该字典提交给CoreData实体。当您需要向用户提供宠物列表以供选择时,您可以从CoreData模型中提取NSArray(或者您可以使用NSFetchedResultsController)。是的,但是如何为每个宠物创建NSDictionary?我的意思是,用户可以添加数千个宠物,我确信我不应该在代码中创建数千个字典。谢谢实际上,您应该将其存储在CoreData中。只将字典用作“保存对象”,用于记录有关宠物的故事所需的数据。然后,当用户“保存”或发生导致“保存”的其他事件时,将该字典提交给CoreData实体。当您需要向用户提供可供选择的宠物列表时,您可以从该CoreData模型中提取NSArray(或者您可以使用NSFetchedResultsController)。