2

都市/国/場所を検索できる検索バーがあります。テストして東京を検索しました。私の結果は、検索ディスプレイコントローラーのテーブルビューに表示されます。これは、テーブルビューセルに表示される「東京」を検索したときに得られるものの例です。

これは<code>UITableViewCell</code>です

そして、セルのタイトルとサブタイトルを組み合わせた文字列があります。次に、その文字列を逆ジオコーディングしますが、文字'''がUnicode文字であるため、'Tokyo'を認識できないため、エラーが発生します。

では、この文字列/「o」を通常の「o」に変換する方法や、Unicode文字を含まない方法はありますか?または、CLGeocoderこれらのタイプの文字をジオコーディングできるようにする方法はありますか

ありがとう!

4

1 に答える 1

1

私見、文字列内のすべての発音区別符号を削除する必要があります。

参照用のドキュメントをCFMutableString参照してください:

Boolean CFStringTransform (
   CFMutableStringRef string,
   CFRange *range,
   CFStringRef transform,
   Boolean reverse
);

transformパラメータをkCFStringTransformStripDiacritics:に設定します

NSMutableString *StripDiacritics(NSString *string)
{
    CFMutableStringRef stringRef = (__bridge_retained CFMutableStringRef)[string mutableCopy];
    CFRange range = CFRangeMake(0, CFStringGetLength(stringRef));
    CFStringTransform(stringRef, &range, kCFStringTransformStripDiacritics, false);
    NSMutableString *result = (__bridge_transfer NSMutableString*)stringRef;
    return result;
}
于 2012-09-29T03:42:44.563 に答える