iPhoneアプリ開発の初心者 ログイン時に呼び出され、非同期で動作する非同期メソッドを使用して、アプリケーションのさまざまなビューに移動します。 このメソッドは、メインビューのメソッドに影響を与えることなく独立して動作する必要があります。 この方法は、ローカルフォルダ上のファイルのftpをサーバーに実行しています。 私が教えてくれたり、私が参照できるサンプルコードを書いてください。 私はftpとasyncの両方のプロセスを見たいと思っています。おかげさまで iPhoneアプリで非同期メソッド呼び出しを使用しているFTPファイル
2
A
答えて
1
iphoneからバックグラウンドスレッドでサーバーに何かをアップロードしたいのですか?とにかく バックグラウンドスレッドでのダウンロードは非常に似ているはずです。
最初は、私はあなたがあなたのための主な作業を行うメソッドを作成するお勧め:
- (void) createRessource {
NSURL *destinationDirURL = [NSURL URLWithString: completePathToTheFileYouWantToUpload];
CFWriteStreamRef writeStreamRef = CFWriteStreamCreateWithFTPURL(NULL, (__bridge CFURLRef) destinationDirURL);
ftpStream = (__bridge_transfer NSOutputStream *) writeStreamRef;
BOOL success = [ftpStream setProperty: yourFTPUser forKey: (id)kCFStreamPropertyFTPUserName];
if (success) {
NSLog(@"\tsuccessfully set the user name");
}
success = [ftpStream setProperty: passwdForYourFTPUser forKey: (id)kCFStreamPropertyFTPPassword];
if (success) {
NSLog(@"\tsuccessfully set the password");
}
ftpStream.delegate = self;
[ftpStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
// open stream
[ftpStream open];
}
この方法では、ジョブの三分の一である:それはバックグラウンドで呼び出されます。
- (void) backgroundTask {
NSError *error;
done = FALSE;
/*
only 'prepares' the stream for upload
- doesn't actually upload anything until the runloop of this background thread is run!
*/
[self createRessource];
NSRunLoop *currentRunLoop = [NSRunLoop currentRunLoop];
do {
if(![currentRunLoop runMode: NSDefaultRunLoopMode beforeDate: [NSDate distantFuture]]) {
// log error if the runloop invocation failed
error = [[NSError alloc] initWithDomain: @"org.yourDomain.FTPUpload"
code: 23
userInfo: nil];
}
} while (!done && !error);
// close stream, remove from runloop
[ftpStream close];
[ftpStream removeFromRunLoop: [NSRunLoop currentRunLoop] forMode: NSDefaultRunLoopMode];
if (error) {
// handle error
}
/* if you want to upload more: put the above code in a lopp or upload the next ressource here or something like that */
}
今、あなたは
[self performSelectorInBackground: @selector(backgroundTask) withObject: nil];
を呼び出すことができますし、バックグラウンドスレッドが作成されます、ストリームはその実行ループでスケジュールされ、実行ループが設定され、開始しました:このような何かから呼び出されます 。
最も重要なのは、バックグラウンドスレッドで実行ループの開始である - それなしで、ストリームの実装は作業を開始することはありません...ほとんどがここで、私は実行するために同様のタスクを持っていたところから撮影
関連する問題
- 1. 非同期メソッドを使用してXigniteを呼び出す
- 2. 非同期メソッドで非同期呼び出しスタック
- 3. 非同期メソッド呼び出しのテスト
- 4. 非同期メソッドと同期メソッドを連続して呼び出します
- 5. 非同期呼び出し
- 6. Microsoft.Azure.NotificationHub - 同期メソッドの非同期呼び出し
- 7. 非同期コードから非同期メソッドを呼び出す
- 8. ノードFTP:ループ内の複数の非同期呼び出し
- 9. 非同期メソッド(Web呼び出しを行う)を非同期にラップする
- 10. 非同期メソッドから同期メソッドを呼び出す
- 11. C#EndInvokeを使用しない非同期呼び出し?
- 12. UIスレッドで同期メソッドを非同期で呼び出す
- 13. パラメータを使用した非同期呼び出しの呼び出し方法
- 14. JNIを使用してJavaメソッドを非同期に呼び出す
- 15. 非同期呼び出し使用してNodeJS
- 16. ES6:非同期呼び出しでジェネレータを使用する
- 17. WCF非同期呼び出しが遅い、同期呼び出し高速
- 18. 非同期メソッドのsysncメソッドを呼び出しますか?
- 19. Pythonでの同期呼び出しへの非同期呼び出し
- 20. 非同期メソッドが呼び出された同期メソッドを待機します
- 21. C#非同期呼び出しメソッド定期的に
- 22. 非同期呼び出しでのハンドルリダイレクト
- 23. ThreadPool.QueueUserWorkItemスレッド内で非同期呼び出しを使用
- 24. spring mvcがファイルをアップロードして非同期メソッドを呼び出す
- 25. メソッド呼び出しを非同期化する方法
- 26. 非同期メソッドから非同期メソッドを呼び出す方法
- 27. ノードAWS APIを使用したJS非同期呼び出し
- 28. VBA HTTPを使用した非同期データ呼び出し
- 29. コールバックを使用した.NET非同期Webサービス呼び出し
- 30. 非同期に同期メソッドを呼び出す
すぐに私はちょうどこれを達成するための正しい道を知っておく必要があり、その緊急をご返信ください。.. – Selwyn
uがこのことについて、私はより多くのTELを喜ばことができますか?、私は実際に私がFTPを行いますメソッドを実装したいあなたのポイント – maheswaran
を得るカントこのプロセスはUIの操作には影響しないはずです。あなたが今必要としているものは何ですか?私の問題についてもっと理解が必要です。 – Selwyn