0

CoreData テーブルに解析する必要がある複雑な JSON ファイルがあります。現在、この形式と次の 6 つの要素を使用して、データを NSArray にキャプチャします。

 2013-08-29 10:54:04.930 iTrackTest[1542:c07] athleteRecords[0]: @SchoolID
 2013-08-29 10:54:04.930 iTrackTest[1542:c07] athleteRecords[1]: @LastName
 2013-08-29 10:54:04.930 iTrackTest[1542:c07] athleteRecords[2]: @Gender
 2013-08-29 10:54:04.931 iTrackTest[1542:c07] athleteRecords[3]: SchType
 2013-08-29 10:54:04.931 iTrackTest[1542:c07] athleteRecords[4]: @FirstName
 2013-08-29 10:54:04.931 iTrackTest[1542:c07] athleteRecords[5]: @IDAthlete

最初の質問です。SchType は NSDictionaries の k 次元 NSArray のようです。本当?

スタンフォード大学の Paul Hegarty 氏のコードを使用して、より単純な単一層の JSON ファイルをキャプチャしてきました。

 dispatch_async(fetchQ, ^{
    NSArray *athleteRecords;
    athleteRecords = [AthleticNetDataFetcher retrieveDataForAthleteWithID:athleteID];
    NSLog(@"In %@: athleteRecords has %d records",NSStringFromClass([self class]), [athleteRecords count]);
    NSLog(@"NSArray with athleteRecords: %@", athleteRecords);

    [document.managedObjectContext performBlock:^{ 
        int iCount=0;
        for (NSDictionary *athleteInfo in athleteRecords) {
            [self resultsWithAthleteInfoForAthleteWithID:athleteInfo inManagedObjectContext:document.managedObjectContext];
            NSLog(@"athleteRecords[%d]: %@", iCount, athleteInfo);
            iCount++;
        }
        [document saveToURL:document.fileURL forSaveOperation:UIDocumentSaveForOverwriting completionHandler:NULL];

    }];
});

CoreData テーブルのすべてのレコードについて、各ノードのデータ要素が必要です。たとえば、School ノードの SchoolName、Season ノードの IDSeason、および Results ノードのすべての要素は、単一の CoreData テーブル行 (レコード) に書き込まれます。

ドット表記に頼って NSArray を介した反復を放棄する必要がありますか、それともノードのさらに下のデータで複数の NSArray をキャプチャする必要がありますか? これを理解するのに苦労しています。

ありがとう!

4

1 に答える 1