1

上記のエラーを解決するにはどうすればよいですか?

以下のコードを使用して、GoogleMapsAPIを使用して住所文字列からlatlongを取得しました

- (CLLocationCoordinate2D) geoCodeUsingAddress:(NSString *)address
{
  double latitude = 0.0;
  double longitude = 0.0;

  NSString *esc_addr =  [address stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
  NSString *req = [NSString stringWithFormat:@"http://maps.google.com/maps/api/geocode/json?sensor=false&address=%@", esc_addr];

   NSDictionary *googleResponse = [[NSString stringWithContentsOfURL: [NSURL URLWithString: req] encoding: NSUTF8StringEncoding error: NULL] JSONValue];

  NSDictionary    *resultsDict = [googleResponse valueForKey:  @"results"];   // get the results dictionary
  NSDictionary   *geometryDict = [resultsDict valueForKey: @"geometry"];   // geometry dictionary within the  results dictionary
  NSDictionary   *locationDict = [geometryDict valueForKey: @"location"];   // location dictionary within the geometry dictionary

  NSArray *latArray = [locationDict valueForKey: @"lat"];
   NSString *latString = [latArray lastObject];     // (one element) array entries provided by the json parser

  NSArray *lngArray = [locationDict valueForKey: @"lng"];
  NSString *lngString = [lngArray lastObject];     // (one element) array entries provided by the json parser

 CLLocationCoordinate2D location;
 location.latitude = [latString doubleValue];// latitude;
 location.longitude = [lngString doubleValue]; //longitude;

  return location;
}

の中に

NSDictionary *googleResponse = [[NSString stringWithContentsOfURL: [NSURL URLWithString: req] encoding: NSUTF8StringEncoding error: NULL] JSONValue];

行、エラー自動参照カウントの問題が発生しました:セレクター「JSONValue」の既知のインスタンスメソッドがありません

私のプロジェクトはARCを使用しています。

そのエラーを解決する方法は?

4

4 に答える 4

3

JSONValue、 の上に追加されたカテゴリから取得されますNSString。カテゴリを通じて追加されたメソッドを使用するには、対応するヘッダーを含める必要があります。この場合、欠落しているヘッダーはおそらく

#import <SBJson/SBJson.h>
于 2013-03-19T12:16:12.963 に答える
2

NSStringという名前のメソッドがありませんJSONValue(なぜあると仮定したのですか?)。おそらく、NSJSONSerializationクラスを使用して文字列をNSDictionaryおよび/またはNSArrayデータ構造に解析する必要があります。

于 2013-03-19T12:13:18.100 に答える
1

私はこの問題を経験しました...

次の手順を実行します。

1) [ビルド フェーズ] -> [ソースのコンパイル] に移動します。

2) JSON に関連するすべてのファイルにフラグ -fno-objc-arc を設定します。

3) プロジェクトをクリーンアップし、再度ビルドします。

このエラーは ARC が原因で発生します..JSON キットには、ARC を使用しているときに自動解放機能があるため..とにかく、これがお役に立てば幸いです..頑張ってください !!

于 2013-03-19T12:28:40.117 に答える
1

悪名高い SBJson ライブラリが必要なようです。

[[NSString stringWithContentsOfURL: [NSURL URLWithString: req] encoding: NSUTF8StringEncoding error: NULL] JSONValue];

SBJson ライブラリにある NSString カテゴリが必要です。

クラスのアークを無効にすることを忘れないでください。

于 2013-03-19T12:49:57.343 に答える