2009-10-06 2 views
1

У меня есть этот простой сценарий:Как может (void) connectionDidFinishLoading RETURN что-то?

  • main.m (который является моим основным классом)
  • myClass.m (который является дополнительным классом)

В моих планах это должно произойти что-то как этот

(в main.m)

myClass *foo = [[myClass alloc] init]; 
NSArray *array = [foo returnAnArray]; 

Что такое myClass делает открытие нового NSURLConnection, получение некоторых данных и - когда оно готово - разбор и возврат массива.

Чтобы вернуть массив с разобранными данными, которые я написал простого

(NSArray *) returnArray:(NSString *)dataDownloadedFromWeb 

Для того, чтобы знать, когда данные ФАКТИЧЕСКИ закончила загрузку и когда начать разбор его, я использую

- (void) connectionDidFinishDownloading: (NSURLConnection *connection) 

Но ГДЕ И КАК я могу позвонить returnArray:, если connectionDidFinishLoading является VOID? :(

Я надеюсь, что это имеет смысл ... Я действительно застрял, и я не могу найти решение. Я попытался с NSNotification, но это, похоже, не работает.

Спасибо всем за поддержка! Энрико

ответ

0

вы должны реализовать connectionDidFinishDownloading себя. вы должны создать объект-делегат, который вы передаете NSURLConnection при ее создании. объект делегат должен реализовать connectionDidFinishDownloading.

NSURLConnection будет называть connectionDidFinishDownloading на ваш объект делегата в соответствующее время.

Там в дальнейшей информации here

+0

Вот и все! :) DELEGATE был способ пойти, у меня было это подозрение с самого начала ... Спасибо, что помогли, действительно, вы сделали мой день. По-прежнему есть много вещей, чтобы узнать о Objective-C ... –

1

Предположительно вы имеете в виду - (void)connectionDidFinishLoading:(NSURLConnection *)connection?

Во всяком случае, вы не ждать, пока он не закончит - разбора данных, когда он будет готов в - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data

  • connectionDidFinishLoading: выпускающая вы знаете, что существует обыкновение быть больше данных, поступающих на ваш сайт.
+0

+1 И как Том и стрела указывают, вам нужно реализовать эти методы делегатов самостоятельно, чтобы получить обратные вызовы на разных этапах процесса. – gavinb

Смежные вопросы