Можно ли отправлять GET-запросы без ожидания ответа в iOS? - PullRequest
1 голос
/ 10 марта 2012

Ожидание ответа занимает около 300 мс, так что я могу отправлять только 3-4 запроса в секунду на свое пользовательское устройство, оно медленное, я работаю над повышением скорости «взаимодействия с пользователем».

Теперь я использую этот код:

    NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:0.5];
    NSHTTPURLResponse* response = nil;
    NSError* error = nil;
    [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

1 Ответ

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

Вы можете запускать запросы асинхронно, правильно реализуя + (void)sendAsynchronousRequest:(NSURLRequest *)request queue:(NSOperationQueue *)queue completionHandler:(void (^)(NSURLResponse*, NSData*, NSError*))handler

Допустим, вы не хотите запускать набор запросов каждые 5 секунд.Вы можете реализовать повторяющийся таймер, который выдает первый запрос.Вы можете сделать так, чтобы делегаты запроса выдавали запросы в последовательном порядке (каждый делегат выдает следующий запрос).На очень упрощенном мета-языке это будет выглядеть так:

- repeatingTimer5sHandler {
    issue1stRequestWithHandler:handlerFor1stRequest;
}

- handlerFor1stRequest {
    handle response
    issue2ndRequestWithHandler:handlerFor2ndRequest;
}

- handlerFor2ndRequest {
    handle response
    issue3rdRequestWithHandler:handlerFor3rdRequest;
}

- handlerFor3rdRequest {
    handle response
    issue4thRequestWithHandler:handlerFor4thdRequest;
}

- handlerFor4thRequest {
    handle response
}

Внизу эта страница является рабочим решением.Это только для одного запроса, но это должно помочь вам начать.

...