-1

iPhone アプリの Google Places API を介して、メキシコ料理、スペイン料理、タイ料理、インド料理など、国固有の料理の場所を実現しようとしています。どうやってやるの??サポートされているタイプを見ると、そこには食べ物、レストランなどしかありません。さらに、このクエリを使用するたびに..

NSString *url = [NSString stringWithFormat:@"https://maps.googleapis.com/maps/api/place/search/json?location=%f,%f&radius=%@&type=restaurant&query=%@&sensor=true&key=%@", currentCentre.latitude, currentCentre.longitude, [NSString stringWithFormat:@"%i", currenDist], googleType, kGOOGLE_API_KEY];

以下のクエリのように、食品|レストラン|施設などのタイプを追加しようとすると、結果がほとんど得られず、アプリがクラッシュします。

NSString *url = [NSString stringWithFormat:@"https://maps.googleapis.com/maps/api/place/search/json?location=%f,%f&radius=%@&type=food|restaurant|establishment&query=%@&sensor=true&key=%@", currentCentre.latitude, currentCentre.longitude, [NSString stringWithFormat:@"%i", currenDist], googleType, kGOOGLE_API_KEY];

私が言ったように、このエラーでアプリがクラッシュするのは、URL に何か問題がある可能性があります。

* Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'data parameter is nil' * First throw call stack: (0x13be022 0x200fcd6 0x1366a48 0x13669b9 0xbadfad 0x2dd2 0x13bfe42 0xaa09df 0x139294f 0x12f5b43 0x12f5424 0x12f4d84 0x12f4c9b 0x15d47d8 0x15d488a 0x17a626 0x236d 0x22d5) terminate called throwing an exception (lldb)

誰かがこれで私を導くことができますか?? すべてのポイントをクリアしたことを願っています。

よろしくお願いします、 マルハール

4

2 に答える 2

0

queryパラメータを使用しているので、PlacesAPITextsearchを使用しようとしているようです。これが正しい場合は、正しいバックエンドにアクセスしていることを確認してください。

maps.googleapis.com/maps/api/place/ textsearch / json

また、タイプを指定するために正しいパラメーターを使用していることを確認してください。

タイプ=食品|レストラン|施設

ドキュメントをよく読み、ブラウザからいくつかのテストhtmlリクエストを実行して、アプリケーションにプラグインする前に正しいリクエストがあることを確認することをお勧めします。

于 2012-07-29T23:53:33.967 に答える
0

これはほぼ 7 か月前のことですが、あなたはそれを解決したか、あきらめたかのどちらかだと思いますが、私はちょうど同じ問題を抱えていて、解決に時間がかかりました. 同様のエラーを抱えている他の人を助けるために、ここに答えを載せると思いました。

私が見つけた問題は、文字が気に入らない URL エンコーディングに関係していました|

私が見つけた回避策は次のとおりです。

// Create an NSString with the URL which includes the '|' characters.
NSString * urlString = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=51.189781,-114.488907&radius=6918&types=food|bar&keyword=&sensor=true&key=YOUR KEY HERE";

// Encode the URL
NSString* encodedURLString = [urlString stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];

// Covert to a NSURL
NSURL *googleRequestURL=[NSURL URLWithString:encodedURLString];

そして、googleRequestURLを URL として使用します。

うまくいけば、それはあなたのためにそれを解決します!

于 2013-01-18T16:55:04.553 に答える