2016-09-02 4 views
0

以下のコードを使用して配列の要素を設定し、配列を返すと、返された配列は別のメソッドに渡され、さらに変更が加えられてから再び返されます。続行する前にコードが返品を待つか?

NSMutableArray *returnArray = [[NSMutableArray alloc]init]; 

//call checkTP1 
returnArray = [self checkTP1STD:addingTime :startToTP1 :TP1Result :nowDate :sevenHour :totalrest :returnArray]; 


//call check TP2 
returnArray = [self checkTP2STD:addingTime :startToTP2 :TP2Result :nowDate :sevenHour :totalrest :returnArray :tp2Rest]; 

現在、私の質問は、checkTP2STDを実行する前にcheckTP1STDが戻ってくるのを待つのでしょうか?

コードを複数のメソッドに分割して読みやすくすることで、メソッドにさまざまな変数値を渡すためのロジックを追加していきます。基本的な考え方が確実に働くようにしたいだけです。一般的に

+0

はい、 'checkTP2STD'は' checkTP1STD'が戻るまで実行されません。 – KudoCC

答えて

2

:はい

ご質問は好奇心旺盛で、あなたはcheckTP1STDallocinitへの呼び出しがcheckTP1STDへの呼び出し前に戻りますことをcheckTP2STDが呼び出される前に返しますが、ないことを懸念しているようです。

実際にcheckTP1STDで非同期作業を行うつもりです(たとえば、GCDまたはシステムフレームワークメソッドを使用して非同期であることを示しています)。そうであれば答えは「はい」ですが、checkTP1STDで予定されているすべての作業が完了する前に呼び出しが返ってくるかもしれません - 非同期プログラミングの本質。

HTH

+0

非同期呼び出しはありません。 – joffd

1

要するに、はい。コードは、指定したコードでは実行していない新しいスレッドへの明示的な呼び出しがない限り、順番に実行されます。

関連する問題