0

アプリでロケーション マネージャーを使用すると、次のコードは iOS7 より前に機能していましたが、現在 iOS7 では "??" が表示されます。エスケープ。州の略語を取得するために州を調べています。ロケーションマネージャは状態を適切に取得しています(「状態」を使用するようにコーディングすると、目的の状態が得られます)が、plistファイル(辞書オブジェクトに設定)を参照して略語を取得すると、何らかの理由で失敗し、 「??」オプション。アイデアはありますか?

NSString *state = placemark.administrativeArea;
NSString *stateAbbreviation = [self.usStateAbbreviations objectForKey:[state uppercaseString]];
NSString *stateTarget = state;

if (stateAbbreviation) {
    stateTarget = stateAbbreviation;
}else{
    stateTarget = @"??";
}
4

1 に答える 1

0

別の質問から:

iOS6 では行政区域の完全な名前 (例: "California") を取得しますが、iOS7 では "CA" の値を取得します。

したがって、その状態は iOS7 では既にstateAbbreviationになっているように見えるため、キーが異なり、次の結果は得られません。

[self.usStateAbbreviations objectForKey:[state uppercaseString]];

CLPlacemarkに関するAppleのドキュメントによると:

このプロパティの文字列は、行政区域のスペルアウトされた名前か、指定された省略形 (存在する場合) のいずれかです。たとえば、目印の場所が Apple の本社である場合、このプロパティの値は文字列「CA」または「California」になります。

したがって、いずれにしても、保証はないようです。

于 2013-11-06T16:43:42.503 に答える