My code is almost identical to the following example:
https://github.com/iamamused/Example-MKLocalSearch.git
Here are the important bits:
@interface ViewController : UIViewController @property (strong, nonatomic) IBOutlet MKMapView *ibMapView; @end @implementation ViewController { MKLocalSearch *localSearch; MKLocalSearchResponse *results; } - (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar { [localSearch cancel]; MKLocalSearchRequest *request = [[MKLocalSearchRequest alloc] init]; request.naturalLanguageQuery = searchBar.text; request.region = self.ibMapView.region; localSearch = [[MKLocalSearch alloc] initWithRequest:request]; [localSearch startWithCompletionHandler:^(MKLocalSearchResponse *response, NSError *error){ [self.resultTable reloadData]; } }
It seems reasonable that when Sutter and Mason aka 600 Sutter St. are in the map region where the search for β600 Sutteβ will include the obvious result of β600 Sutter St.β. I just can't get this to work. I tried many different streets, and I often get results from the state before getting results that are directly in the map area.
In addition, the β600 Sutβ returns irrelevant results, while the β600 Suβ returns an error of 4. Did he really not find anything that starts with the β600 Suβ?
Am I using this API completely wrong or not intended for what I'm trying to do with it?
Map region for all requests: 
600 sutte 
600 Su 
ios ios7 mapkit mklocalsearch
borisz
source share