現在、Mac OS XアプリケーションでAppleのSimplePingを使用して、データを転送する前にURLにpingを実行しています。これは正常に機能しますが、UIがロックされます。適切な場所を調べていなかった可能性がありますが、これを防ぐにはどうすればよいですか?現在、currentRunLoopを使用していますが、これが問題だと思いますが、このアクション中にユーザーがUIを操作できるようにします(キャンセルなど)。UIがロックされないように、Simple Pingの実行ループを作成するにはどうすればよいですか?
SimplePing *localPing = [SimplePing simplePingWithHostName:pingHost];
[localPing setDelegate:self];
[localPing start];
do {
[[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]];
} while (localPing != nil);