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 をキャプチャする必要がありますか? これを理解するのに苦労しています。
ありがとう!