次のコードがあります。時々デッドロックが発生する理由の手がかりはありますか? ほとんどの場合、うまく機能し、wi-fi から 3g への移行が発生したり、アプリが非アクティブになってライブに戻ったりすると、デッドロックが発生するようです。
-(void) dictionaryFromJSONWithURL: (NSURL *) URL callback: (void (^)(NSDictionary* resp, NSError* error)) block{
#ifdef TX_DEBUG
NSLog(@"%s", __FUNCTION__);
#endif
dispatch_async( dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_HIGH, 0 ), ^(void){
NSData* data = [NSData dataWithContentsOfURL:URL ];
NSError* error = nil;
NSDictionary* dict = [NSJSONSerialization
JSONObjectWithData:data //1
options:kNilOptions
error:&error];
dispatch_sync(dispatch_get_main_queue(), ^{
if(error || !dict) block(nil, error);
else block(dict, nil);
});
});