Соглашение об асинхронном и обратном вызове и именовании - PullRequest
0 голосов
/ 28 января 2012

Я использую 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?) Или для обратного вызова?Я нахожу суффикс с номером некрасивым, и не подходит для нелинейного потока.

Что вы рекомендуете?а с чем вы столкнулись?Или, может быть, вы думаете, что это результат плохо спроектированного кода?

1 Ответ

1 голос
/ 28 января 2012

Рефакторинг для использования блоков - что бы поставить ответ прямо рядом с запросом?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...