Я использую ASIHTTPRequest в своем приложении, исключительно с асинхронным запросом.Некоторые методы составлены из асинхронных методов.Например, посмотрите на некоторый метод + (void) updateData, он вызовет
- [x downloadData1], который является асинхронным
- [y downloadData2], который является асинхронным
- ...
Из-за механизма асинхронного / обратного вызова мой метод updateData будет разделен (вместо только одного метода в синхронном контексте), ему потребуется:
-(void) updateData {
... // Some work
x.callback = @selector(updateData1);
[x downloadData1];
}
-(void) updateData1 {
... // Some work
y.callback = @selector(updateData2);
[x downloadData2];
}
...
- (void) updateDataN {
... // Some work
// Need to callback my own "delegate"
[self.target performSelector:callback ...];
}
Поэтому updateData также является асинхронным.
Этот код не взят из моего проекта, я просто попытался изобразить простой пример.Но могут быть некоторые условные вызовы и составные из составных ...
И вот оно, код становится трудно читаемым.Трудно следить за ходом исполнения.Какую хорошую практику или соглашение об именовании вы советуете сообщать, что метод является асинхронным (суффикс -Async?) Или для обратного вызова?Я нахожу суффикс с номером некрасивым, и не подходит для нелинейного потока.
Что вы рекомендуете?а с чем вы столкнулись?Или, может быть, вы думаете, что это результат плохо спроектированного кода?