Нужна помощь в разработке API-оболочки для приложения iOS / iPhone - PullRequest
0 голосов
/ 09 марта 2012

В настоящее время я создаю приложение для iPhone, которое должно подключаться к API.Я создал класс API, который выполняет асинхронный веб-запрос и использует делегат для получения ответа (в основном потоке пользовательского интерфейса).Это выглядит примерно так:

Api* api = [[Api alloc] init]
api.delegate = self;
[api request:@"foo/bar"]; // makes async API call via NSURLConnection

-(void) apiRespondedWith(id) response
{
    // do stuff with API response.
}

Это хорошо работает, но я хотел бы сделать несколько запросов API в ViewController и хотел бы упростить различие между вызовами.Есть ли способ сделать определенные обратные вызовы для каждого вызова API?Селекторы или блоки выглядят как способ сделать это, но я не уверен в лучшем способе реализовать это.

1 Ответ

1 голос
/ 09 марта 2012

Есть несколько способов сделать это.Например, вы можете выполнить веб-запрос в NSOperation / NSOperationQueue.Обратите внимание, что если вы используете этот подход, NSURLConnection необходимо будет выполнять синхронно внутри NSOperation - потому что NSOperation уже выполняется асинхронно.Каждый веб-запрос на загрузку инкапсулирован в NSOperation, который, в свою очередь, передается в NSOperationQueue.

. Вы можете проверить пример использования NSOperation.

Вы можете расширить приведенный выше пример, предоставив NSOperation блок завершения.

В качестве альтернативы, вы можете рассмотреть возможность использования сторонней библиотеки, такой как AFNetworking , которая используетэтот тип механизма обратного вызова на основе блоков.

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