0

データベースにデータを入れようとしています。他のビューでも次のコードを使用しています。それは機能しますか。しかし、このビューでは機能しません。以下のコードを見ることができます。

- (void)fetchKlassementIntoDocument:(UIManagedDocument *)document
{
        NSLog(@"log");
    dispatch_queue_t fetchKlassement = dispatch_queue_create("klassement fetcher", NULL);
    dispatch_async(fetchKlassement, ^{
        NSLog(@"Log2");
        NSLog(@"log3");
        NSArray *klassement  = [GenkData getRanking];
        [document.managedObjectContext performBlock:^{
       NSLog(@"klassement array %@",klassement);
            for (NSDictionary *genkInfo in klassement ) {
            [Klassement klassementWithGenkInfo:genkInfo inManagedObjectContext:document.managedObjectContext];
                NSLog(@"inserted klassement");
            }
            NSLog(@"Log4");
            [document saveToURL:document.fileURL forSaveOperation:UIDocumentSaveForOverwriting completionHandler:NULL];
            NSLog(@"Log5");
       NSLog(@"Log 6");
         }];
    });
    NSLog(@"Log7");
    dispatch_release(fetchKlassement);
    NSLog(@"Log8");
}

これにより、次のエラー ログが表示されます。

2012-10-25 10:50:07.527 RacingGenk[17989:907] log
2012-10-25 10:50:07.528 RacingGenk[17989:907] Log7
2012-10-25 10:50:07.529 RacingGenk[17989:907] Log8
2012-10-25 10:50:07.531 RacingGenk[17989:4f03] Log2
2012-10-25 10:50:07.532 RacingGenk[17989:4f03] log3
2012-10-25 10:50:07.604 RacingGenk[17989:907] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 0 beyond bounds for empty array'

データをフェッチした後、このデータでテーブルビューを埋めます。それでエラーが出たのだと思います。しかし、誰かが私に何がうまくいかないのか教えてもらえますか?

敬具。

4

1 に答える 1

0

あなたのコードからの行:

NSArray *klassement  = [GenkData getRanking]; 

getRanking メソッドとクラスメント配列を確認してください。この行のみが原因でクラッシュが発生しています。

両方のログを入れてください。問題が解決することを願っています。

于 2012-10-25T10:00:01.987 に答える