0

私は Evernote API を使用していますが、ブロックの使用を適切に管理する方法がわかりません。私のコードは、信じられないほど乱雑になり、いたるところに吐き出されます。

API には、このスタイルへのメソッドが含まれています。

[object doSomethingWithSuccess:^(NSObject *anotherObject) {
    NSLog(@"success!");
} failure:(NSError *error) {
    NSLog(@"failure!");
}

その後、その成功に基づいて別の同様の方法を実行し、次にそれに基づいて別の同様の方法を実行する必要があります。

また、何かを実行してから時間がかかるメソッドを実行したいだけの問題もありますが、ブロック内から戻ることはできません。

人々はこれにどのように対処しますか?

例:

シナリオによっては、ノートブックを作成してから別のことをしたいことがあります。「その他」は毎回異なります。接続するためのコードを入れることは決してありません 標準コードでは、メソッドを実行します:

[self connect];

//Do the 'something else'

しかし、この状況では、接続したいすべての場所に [self connect] 内のコードをコピーして貼り付け、補完で次のコードを実行する以外に、これを行う方法を考えることさえできませんハンドラ。

4

1 に答える 1

1

成功に基づいて他のことを実行するには、ブロック内からそれらを呼び出すだけです。別のブロックを使用する別の操作である場合、通常はそれらをネストするだけです。

ブロック内から戻る代わりに、ブロックが完了したときに呼び出す別のメソッドを作成する必要があります。

于 2013-07-01T16:06:41.920 に答える