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を使用せずにそれを行う方法を知りたいので、この質問は開いたままにしておきます。