1

DBには、他のデータの間に都市名を含むレコードがいくつかあります。都市がユーザーの都市と一致するデータのみをテーブルビューにロードしたいと思います。私はすでに逆ジオコーディングを使用してユーザーの都市を取得しました。

[self.geoCoder reverseGeocodeLocation: location completionHandler:
 ^(NSArray *placemarks, NSError *error) {

     CLPlacemark *placemark = [placemarks objectAtIndex:0];
     country = [placemark.addressDictionary valueForKey:@"Country"];
     city = [placemark.addressDictionary valueForKey:@"City"];
     NSString *title = [NSString stringWithFormat:NSLocalizedString(@"You're in %@", nil),city];

     NSLog(@"%@", title);
     [locationController.locationManager stopUpdatingLocation];
 }];

問題は、都市名がローカライズされていることです。例:私はスペインのサラゴサに住んでいて、都市「サラゴサ」を含むDBレコードを設定しました。しかし、私の電話言語はイタリア語であり、都市名として、DBレコードのフィールドと一致しない「サラゴサ」を取得します。これを行う方法について何かアイデアはありますか?

編集:このアプリのバックエンドとしてParseを使用しているので、APIでwhereKey:nearGeoPoint:withinMilesというメソッドを見つけました。これで問題が解決します。DBレコードを都市名ではなく「ジオポイント」に変更し、ユーザーの場所からXマイル以内のすべてのレコードをロードします。とにかく、ParseのAPIを使用せずにそれを行う方法を知りたいので、この質問は開いたままにしておきます。

4

0 に答える 0