我是新来的iOS编程,并希望在iPad应用程序我设计显示股票行情和股票的细节。 我在看两个选项进出口寻找在谷歌财经或雅虎财经。
我怎么会去发送URL请求到他们的网站,然后处理在Xcode的回答吗?
我看到雅虎有YQL服务,但我不能换我周围我将如何得到它的头,尽管读了一些雅虎在线文档,以便即时通讯寻求避免它的工作。 香港专业教育学院有一个看看谷歌的API,但我无法弄清楚如何整合并得到它要求股票的细节。 我决定去通过URL请求路径,并尝试做了一些基本的代码来处理从URL请求的答复,因为这似乎是最简单的选择(虽然我不知道这将如何工作了股票搜索时) 。
只是删除了我的全部答案,并重写了它,以避免混淆:
我看着如何使用YQL查询雅虎财经API和这里就是我结束了:
下面是完整的代码完全制定请求字符串。 您可以直接抛出此进入NSURL的NSMutableURLRequest并会得到一个JSON响应。 此代码将获取每个股票的每一个属性。 要改变这一点,你需要在前缀此位指定单独的属性,而不是*(选择20%* 20%)。 我把它的一部分从示例代码这篇文章 。 我修改了代码以适应异步请求(也改成了略微因为它的一部分似乎已经过时,不能正常工作。
#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];
使用这个答案 ,看看如何制定的要求并消耗回来的JSON。 从本质上讲,你需要改变的部分是
NSURL *url = [NSURL URLWithString:queryURL];
你还没有发送过JSON所以你应该改变的要求,以反映。
My ScriptScraper tool does something similar, it loads the stocks into an Excel table.
cheers,
Martin