Как правильно управлять рабочим процессом, заполненным асинхронными блоками?IOS

Программируем под IOS
Anonymous
Как правильно управлять рабочим процессом, заполненным асинхронными блоками?

Сообщение Anonymous »

Я работаю с Evernote API и не знаю, как правильно управлять блоками, чтобы мой код не был невероятно беспорядочным и разбросанным повсюду.

API включает методы этого стиля:

Код: Выделить всё

[object doSomethingWithSuccess:^(NSObject *anotherObject) {
NSLog(@"success!");
} failure:(NSError *error) {
NSLog(@"failure!");
}
После этого мне нужно запустить еще один аналогичный метод, основанный на успехе этого, а затем еще один аналогичный, основанный на этом.
У меня также есть проблема: мне просто хочется запустить метод, который что-то делает, а затем возвращает результат через сколько бы времени это ни потребовалось, но я не могу вернуться изнутри блока.

Как люди с этим справляются?

Пример:

В некоторых сценариях я хочу создать блокнот, а затем сделать что-то еще. «Что-то еще» каждый раз разное. Я бы никогда не вставил код для подключения. Со стандартным кодом я бы запустил метод:

Код: Выделить всё

[self connect];

//Do the 'something else'
Но в этой ситуации я даже не могу придумать, как это сделать, кроме как скопировать и вставить код внутри [self Connect] куда угодно. хотите подключиться, а затем запускаете следующий фрагмент кода в обработчике завершения.

Подробнее здесь: https://stackoverflow.com/questions/174 ... ync-blocks

Вернуться в «IOS»