今、HTTPFileUploadSampleをテストしています。私は、コマンドツールラインプログラムの種類を作成するためにそれを使用したいので、私はmain()関数でメソッドを呼び出すので、このように:main()でNSURLConnectionを使用すると、接続が完了できない理由は何ですか?
int main (int argc, const char * argv[])
{
@autoreleasepool {
Uploader *upl = [Uploader alloc];
[upl initWithURL:[NSURL URLWithString:@"http://localhost/uploader.php"]
filePath:@"/test.txt"
delegate:upl
doneSelector:@selector(onUploadDone)
errorSelector:@selector(onUploadError)];
//[[NSRunLoop currentRunLoop] run];
}
return 0;
}
私は、それが正常に接続し、ポストの要求を作成することができましたデリゲートメソッド(接続:didReceiveResponse:または接続:didReceiveData:またはconnectionDidFinishLoading:)を呼び出さないため、接続を完了できません。 私は[[NSRunLoop currentRunLoop] run]というメソッドを呼び出してコード内のコメントとしてループを実行します。何故かはわからない。誰か私に説明を教えてもらえますか?どうも!
ありがとうございます! runloopの代わりに他の方法があるかどうか知りたいですか? –
コマンドラインアプリケーションの場合、 '+ sendSynchronousRequest:returningResponse:error:'を使うことができます。これは同期(完了までブロックする)なので、runloopは不要です。 –
助けてくれてありがとう、ボブ。 –