URL のロードが時々失敗する状況を見ていますが、それは非常に「ひどく」失敗します。ホストに到達できない (つまり、VPN が接続されていない) 場合+[NSURLConnection(NSURLConnectionReallyInternal) _resourceLoadLoop:]、次のバックトレースでハングすることがよくあります。
(gdb) bt
#0  in mach_msg_trap ()
#1  in mach_msg ()
#2  in __CFRunLoopServiceMachPort ()
#3  in __CFRunLoopRun ()
#4  in CFRunLoopRunSpecific ()
#5  in +[NSURLConnection(NSURLConnectionReallyInternal) _resourceLoadLoop:] ()
#6  in -[NSThread main] ()
#7  in __NSThread__main__ ()
#8  in _pthread_start ()
#9  in thread_start ()
を実装- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)errorしましたが、呼び出されません。
次のように NSURLRequest を作成しています。
NSURLRequest *theRequest = 
    [NSURLRequest requestWithURL:[NSURL URLWithString:url]
                     cachePolicy:NSURLRequestReloadIgnoringCacheData
                 timeoutInterval:5.0];
そのため、リクエストは無期限にハングアップするのではなく、5 秒後にタイムアウトするはずだと想定していました。これは起こっていません。
これは、Mac OS X のコンソール アプリケーション (iOS ライブラリのテスト フレームワーク) 内で発生することに注意してください。実行ループ構成で何か「奇妙な」ことが起こっているのではないかと思っています。(トレースから、実行中の実行ループ内から新しい実行ループをスピンアップしようとしているように見えます?!)
何か案は?
編集:これは Cocoa アプリケーションではないため、実行ループを手動で実行する必要があります。これはおそらく問題の一部のようです。