【问题标题】: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)创建一个数组/字典并保存它。

标签: iphone core-data entity


【解决方案1】:

显然,您需要三个类别。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 2018-02-22
    • 1970-01-01
    • 2019-01-08
    相关资源
    最近更新 更多