0

我正在尝试将数据添加到核心数据实体的属性中。

Contents of contentArray: (
036,
038,
040,
041,
043,
044,
044,
043,
042,
041,
041,
042,
042,
042,
042,
041,
041,
042,
043,
044,
045,
046,
047,
048,
050,
053,
054,
056,
059,
060,
057,
055,
053,
051,
048,
046,
043,
035,
034,
033,
032,
031,
032
}

上面给出的是可变数组的示例内容。我正在尝试将其添加到 NSManagedObjectContext 变量中,如下所示:

  for (int i =0;i<[contentArray count];i++){
            int a =[[contentArray objectAtIndex:i] intValue];
            NSLog(@"value:%d",a);
            [newManagedObject setValue:[NSNumber numberWithInteger:a ] forKey:@"timeStamp"];
            // Save the context.
            NSError *error = nil;
            if (![context save:&error]) {  

            NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
            abort();
   }
  } 

我刚刚操作了 iOS 的默认核心数据应用程序,它在表中添加了时间戳值。单元格被先前的值覆盖。我的实施有什么问题吗?如何添加数据而不是覆盖内容数组的数据?任何帮助将不胜感激。谢谢

4

2 回答 2

2

您必须在每次循环中创建一个新的托管对象(并将其添加到您的上下文中)。只要您始终使用相同的对象,就难怪您的数据会被覆盖。

另一方面,您可能应该将保存代码放在循环之外。

于 2012-05-10T11:10:51.990 回答
0

这是将数据存储到核心数据中的基本方法。检查一下并为您的代码更改它...

NSManagedObjectContext *context = [self managedObjectContext];
countryObject=[NSEntityDescription
                          insertNewObjectForEntityForName:@"Country" 
                          inManagedObjectContext:context]; 
countryObject.city = @"New york";
countryObject.people = [NSString stringWithFormat:@"%@",[yourArray objectAtIndex:i]];
NSError *error;
if (![context save:&error]) {
    NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]);
}
于 2012-05-10T11:16:11.597 回答