シナリオは次のとおりです。私のアプリでは、いくつかのデータを同期しています。同期中にエラーが発生するたびに、BOOL
. すべての同期が完了したら、ユーザーに同期フィードバック (エラー) を表示したいと考えています。
カレンダーの同期エラーと連絡先の同期エラーがある場合、最初UIAlertView
にカレンダーの同期エラーに関する情報を表示し、ユーザーが [OK] をタップするUIAlertView
と、連絡先の同期エラーに関する情報を表示します。ユーザーがいつ「OK」をタップしたかを知るために、完了ブロックを使用します。したがって、私のコードは次のようになります。
if (calendarSyncFailed && contactSyncFailed && facebookSyncFailed && contactSyncConflicts) {
[self displayCalendarSyncAlertCompletionBlock:^{
[self displayContactsSyncAlertCompletionBlock:^{
[self displayFacebookSyncAlertCompletionBlock:^{
[self displayContactSyncConflictsAlertCompletionBlock:^{
}];
}];
}];
}];
} else if (calendarSyncFailed && contactSyncFailed && facebookSyncFailed) {
[self displayCalendarSyncAlertCompletionBlock:^{
[self displayContactsSyncAlertCompletionBlock:^{
[self displayFacebookSyncAlertCompletionBlock:^{
}];
}];
}];
} else if (contactSyncFailed && facebookSyncFailed && contactSyncConflicts) {
[self displayContactsSyncAlertCompletionBlock:^{
[self displayFacebookSyncAlertCompletionBlock:^{
[self displayContactSyncConflictsAlertCompletionBlock:^{
}];
}];
}];
} else if (you get the idea…) {
}
ご覧のとおり、これら 4 つのブール値を処理するにはさまざまな組み合わせがあり、これをコーディングするよりスマートでエレガントな方法があるかどうか疑問に思っていました。