不能同时为同一个键添加多个值

Posted

技术标签:

【中文标题】不能同时为同一个键添加多个值【英文标题】:Cant add multiple values for same key at same time 【发布时间】:2013-09-27 06:49:08 【问题描述】:

NSManagedObject *newVehicleCategory = [NSEntityDescription insertNewObjectForEntityForName:@"Vehicle" inManagedObjectContext:context];

    [newVehicleCategory setValue:@"Car" forKey:@"category"];
    [newVehicleCategory setValue: @"Bus" forKey:@"category"];
    [newVehicleCategory setValue: @"Tractor" forKey:@"category"];

我正在我的应用程序的 viewDidLoad 中执行此操作,以将 3 个车辆类别添加到实体“车辆”的名为“类别”的属性中。 但是只有最后一个值被添加到其中,但我希望将所有这 3 个值都输入到属性“类别”中。 那我该怎么办??

【问题讨论】:

为什么你认为它应该有效?你试过什么了?您在哪里寻找解决方案? 您不能像这样为同一个键设置多个值,因为它会用新值替换以前的值。如果您需要设置,请使用数组并为该键分配该数组。 但是我需要将这3个值分开存储以备将来使用,我该怎么办?? 您有 2 种方法:1)使用 3 个不同的键,每个类别一个 2)创建一个数组/字典并保存它。 【参考方案1】:

显然,您需要三个类别。

for (NSString *category in @[@"Car", @"Bus", @"Tractor"]) 
   NSManagedObject *newVehicleCategory = [NSEntityDescription
       insertNewObjectForEntityForName:@"Vehicle"
       inManagedObjectContext:context];
   [newVehicleCategory setValue:category forKey:@"category"];

这似乎是基本编程(101 之前)。也许你现在不应该接触 Core Data。

【讨论】:

以上是关于不能同时为同一个键添加多个值的主要内容,如果未能解决你的问题,请参考以下文章

如何在不覆盖先前值的情况下为同一个键设置多个值?

如何在没有值的情况下向字典添加键?

如何将多个值添加到python中的字典键? [关闭]

垂直块列表中如何同时增加一个主点和多个子点的文本

向 Ruby 中的键添加多个值以及仅删除一个关联的值

键,索引,关系