В моем приложении мне нужно вызвать функцию, которая в свою очередь вызывает многие функции. Проблема в том, что я вызвал функцию getweather
, и она запускает startprocess
, после чего процесс завершается. Метод processCompleted
вызывается rssparser
, и значение доступно в конце метода processCompleted
.Ожидание функции для возврата значения
-(void) getWeather: (NSDictionary *) dictionary {
_rssParser = [[BlogRssParser alloc]init];
self.rssParser.address = addressInterestedIn;
self.rssParser.delegate = self;
[[self rssParser]startProcess];
}
//Delegate method for blog parser will get fired when the process is completed
-(void)processCompleted
{
NSLog(@"the rssItems array is %@", [[[self rssParser]rssItems] description]);
int woeid = [[[[self rssParser] rssItems] objectAtIndex:0] intValue];
// get weather update from yahoo
NSLog(@"temperature option %d", [[[NSUserDefaults standardUserDefaults] objectForKey:@"temperature"] intValue]);
SCYahooWeatherParser *parser = [[SCYahooWeatherParser alloc] initWithWOEID:woeid weatherUnit: [[[NSUserDefaults standardUserDefaults] objectForKey:@"temperature"] intValue]];
//parse the returned xml from yahoo
SCWeather *result = [parser parse];
[parser release];
NSLog(@"the conditionDataDict is %@", [result.conditionDataDict description]);
}
Как получить значение, возвращаемое методом processCompleted
, потому что я назвал getWeather
функции.
если отредактирован вопрос. пожалуйста, проверь это. –
Мой ответ остается тем же, пожалуйста, прочитайте полностью, вы не используете селекторов или фоновых потоков, поэтому возвращаемое значение всегда получается, нет необходимости синхронизировать функции. –