0

私はいくつかの投稿を読み、方法を見つけました。私はそれを自分のアプリに適合させましたが、[selfsaveContext]で; 不正な命令エラーが発生します。

理由と、この方法が理にかなっているかどうかを教えてください。また、csvでは各アイテムが独自の行にあるため、\rを使用しています。

前もって感謝します

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

このコード行には2つの問題があります。

[FirstCDitem setTitle:[dataElements objectAtIndex:i]];
  • iは現在の行番号であるため、dataElements配列のインデックスとして使用することはおそらく意味がありません。おそらく、行の最初の要素が必要ですか?
  • setTitlemyItemクラスではなく、インスタンスに送信する必要がありますFirstCDItem

したがって、行は次のようになります。

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