У меня есть метод (getAllTeams :), который инициирует HTTP-запрос с использованием библиотеки ASIHTTPRequest.
NSURL *httpURL = [[[NSURL alloc] initWithString:@"/api/teams" relativeToURL:webServiceURL] autorelease];
ASIHTTPRequest *request = [[[ASIHTTPRequest alloc] initWithURL:httpURL] autorelease];
[request setDelegate:self];
[request startAsynchronous];
То, что я хотел бы сделать, это позвонить по номеру [WebService getAllTeams]
и вернуть его в NSArray. На данный момент getAllTeams ничего не возвращает, потому что HTTP-ответ оценивается в методе requestFinished :.
В идеале я бы хотел иметь возможность вызвать [WebService getAllTeams]
, дождаться ответа и выгрузить его в NSArray. Я не хочу создавать свойства, потому что это одноразовый класс (то есть он не хранит никаких значений, он просто извлекает значения), и несколько методов будут использовать один и тот же requestFinished (все они возвращают массив).
Я немного прочитал о делегатах и NSNotifications, но я не уверен, является ли один из них лучшим подходом. Я нашел этот фрагмент о реализации обратных вызовов путем передачи селектора в качестве параметра, но он не выпал (так как requestFinished запускается независимо).
Есть предложения? Я был бы признателен, даже если бы меня указали в правильном направлении.
NSArray *teams = [[WebService alloc] getAllTeams];
(в настоящее время не работает, потому что getAllTeams ничего не возвращает, но requestFinished делает. Я хочу получить результат requestFinished и передать его обратно getAllTeams:)