0

我已经阅读了一些帖子并找到了一种方法。我将它改编为我的应用程序,但是在 [self saveContext]; 我收到一个错误的指令错误。

请让我知道原因,以及这种方法是否有意义。我也使用 \r 因为在 csv 中,每个项目都在自己的行中。

先感谢您

-(void)addData{
    NSString *paths = [[NSBundle mainBundle] resourcePath];
    NSString *bundlePath = [paths stringByAppendingPathComponent:@"coredatainfo.csv"];
    NSString *dataFile = [[NSString alloc] initWithContentsOfFile:bundlePath];
    NSArray *dataRows = [dataFile componentsSeparatedByString:@"\r"];
    [dataFile release];
    FirstCDitem *myItem;


    for (int i = 0 ; i < [dataRows count] ; i++)
    {
        NSArray *dataElements = [[dataRows objectAtIndex:i] componentsSeparatedByString:@","];
        NSLog(@"Added: %d %@",i,dataElements);
        myItem = (FirstCDitem *)[NSEntityDescription insertNewObjectForEntityForName:@"FirstCDitem" inManagedObjectContext:[self managedObjectContext]];
        [FirstCDitem setTitle:[dataElements objectAtIndex:i]];
        [self saveContext];
    }
}
4

1 回答 1

1

此代码行有两个问题:

[FirstCDitem setTitle:[dataElements objectAtIndex:i]];
  • i是当前行号,因此将其用作dataElements数组的索引可能没有意义。也许您想要行中的第一个元素?
  • setTitle必须发送到实例myItem,而不是类FirstCDItem

所以这条线应该是这样的:

[myItem setTitle:[dataElements objectAtIndex:0]];
于 2012-12-17T06:14:22.140 回答