Просто удалил весь мой ответ и переписал его, чтобы избежать путаницы:
Я посмотрел в том, как использовать YQL для запроса Yahoo Finance API и вот что я закончил с:
Вот завершенный код чтобы полностью сформулировать строку запроса. Вы можете бросить это прямо в NSURL для NSMutableURLRequest и получите ответ json. Этот код будет извлекать каждое свойство каждого тикера. Чтобы изменить это, вам нужно будет указать индивидуальные свойства вместо * в этом бите в префиксе (выберите% 20 *% 20). Я принял участие в этом примере из примера кода в this post. Я изменил код, чтобы вписаться в асинхронном запрос (также изменил его немного, потому что часть его, казалось, устарели и не работал
#define QUOTE_QUERY_PREFIX @"http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20("
#define QUOTE_QUERY_SUFFIX @")%0A%09%09&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=json"
+ (NSString *)formulateYQLRequestFor:(NSArray *)tickers
{
NSMutableString *query = [[NSMutableString alloc] init];
[query appendString:QUOTE_QUERY_PREFIX];
for (int i = 0; i < [tickers count]; i++)
{
NSString *ticker = [tickers objectAtIndex:i];
[query appendFormat:@"%%22%@%%22", ticker];
if (i != [tickers count] - 1)
{
[query appendString:@"%2C"];
}
}
[query appendString:QUOTE_QUERY_SUFFIX];
return query;
}
Вы бы ссылаться на это, делая что-то вроде:.
NSArray *tickerArray = [[NSArray alloc] initWithObjects:@"AAPL", @"VZ", nil];
NSString *queryURL = [MyClass formulateYQLRequestFor:tickerArray];
Используйте this answer, чтобы увидеть, как сформулировать запрос и потреблять JSON, который возвращается. существу часть, которую вы должны изменить это
NSURL *url = [NSURL URLWithString:queryURL];
Вы также не отправляете JSON, поэтому вам нужно изменить запрос, чтобы это отразить.