混乱を避けるために、回答全体を削除して書き直しました。
YQL を使用して yahoo ファイナンス API をクエリする方法を調べたところ、最終的に次のようになりました。
リクエスト文字列を完全に定式化するための完成したコードを次に示します。これを NSMutableURLRequest の NSURL に直接投げることができ、json 応答を取得します。このコードは、各ティッカーのすべてのプロパティをフェッチします。これを変更するには、プレフィックスのこのビットの * の代わりに個々のプロパティを指定する必要があります (select%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 を送信していないため、それを反映するようにリクエストを変更する必要があります。