IOS Xcode プログラミングは初めてです。現在、Json データを使用するアプリに取り組んでいます。アプリは、サイズが非常に大きい可能性がある Json データを読み取ります。データを解析して Core Data に保存する必要があります。これにより、次回アプリを実行するときにそこから簡単にデータを読み取ることができ、多くの時間を節約できます。使用してみdispatch_async
ましたが、データの保存中に UI がフリーズし、アプリがクラッシュするようです。以前ASIHTTPRequest
は Json データを読み取って解析していましたが、これは問題なく機能していましたが、データをコア データに保存し、UITableView
同時にロードする必要があり、これが苦痛であることがわかりました。誰かがこれで私を助けることができれば、私はとても感謝しています.
これが私のコードです
NSString *connectionString = [NSString stringWithFormat:@"%@%@?song_id=%@", SERVER_STRING, URL_GET_SONG_LIST, lasSongID];
NSLog(@"COnnection String is:\n%@", connectionString);
NSURL* url = [NSURL URLWithString:connectionString];
//The actual request
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
// Becoming the request delegate
//To get callbacks like requestFinished: or requestFailed:
[request setDelegate:self];
NSLog(@"Fetching Dataaaaaaaa from %@",url);
// Fire off the request
[request startAsynchronous];
-(void) requestFinished: (ASIHTTPRequest *) request
{
NSString *theJSON = [request responseString];
NSLog(@"Dataaaaaaaa,%@",theJSON);
NSDictionary *responseDictionary = [theJSON JSONValue];
if ([[responseDictionary valueForKey:@"Message"] isKindOfClass:[NSArray class]])
{
[songsArray addObjectsFromArray:[responseDictionary valueForKey:@"Message"]];
if (songsArray.count > 0)
{
dispatch_async (bgQueue, ^(void){
[self saveDownloadedSongs];
});
}
}
}
saveDownloadedSongs --> いくつかの検証の後、Json をコア データに保存します