Webサービスを使用してサーバーからデータを取得するiPhoneアプリがあります。Webサービスへの各呼び出しをNSOperationサブクラスに入れて、スレッド化できるようにします。私の質問は、完成したNSOperationサブクラスから情報を返すための推奨される方法は何ですか。現在、メインメソッドの最後にNSNotificationを送信しており、NSOperationの完了を待機しているコードはすべて、通知をサブスクライブします。次に、NSNotificationWithName:Object:のオブジェクト部分を使用して、操作から情報を返します。
これを行うためのより良い方法があるかどうかはわかりませんでした。Key Value Codingについて聞いたことがあり、Key Value Observingを使用して、操作のisFinishedプロパティが変更されたことを検出できましたが、ベストプラクティスがわかりません。
また、アプリケーションがスレッドセーフであることを確認しようとしています。これは、メインメソッドの最後に通知が送信され、通知内のオブジェクトが使用されない限り、問題にはならないと思います。それが終了するので、スレッドで。
最後に、私は次のように通知を呼び出しています。
[[NSNotificationCenter defaultCenter] performSelectorOnMainThread:@selector(postNotification:) withObject:[NSNotification notificationWithName:@"notificationName" object:dataObject] waitUntilDone:NO];