2012-05-09 2 views
1

Я новичок в программировании на iOS и хочу отобразить котировки акций и данные о запасах в приложении iPad, которое я разрабатываю. Я смотрю на два варианта. Я смотрю на финансы Google или на финансирование yahoo.Загрузка котировок акций в приложение

Как я могу отправить запрос url на свои сайты, а затем обработать ответ в Xcode?

Я вижу, что у yahoo есть служба YQL, но я не могу окутать голову, как бы я ее заработал, несмотря на то, что читал документацию Yahoo в Интернете, поэтому я хочу ее избежать. Ive посмотрел на google api, но я не могу понять, как интегрировать его и заставить его запрашивать данные о запасе. Я решил пройти маршрут запроса url и попытаться составить базовый код для обработки ответа от запроса url, поскольку это похоже на самый простой вариант (хотя я не знаю, как это будет работать при поиске запасов) ,

ответ

2

Просто удалил весь мой ответ и переписал его, чтобы избежать путаницы:

Я посмотрел в том, как использовать 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, поэтому вам нужно изменить запрос, чтобы это отразить.

0

Мой инструмент ScriptScraper делает что-то подобное, он загружает запасы в таблицу Excel.

cheers, Martin

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