I implemented search bar in iOS application. I want to get the same (partial result) search hints as Apple Maps application. I tried to find out how apple implemented it but I was not successful on google or here on stackoverflow.
It doesn't matter what is displayed exactly in my UITableView *searchHintTableView. I just don't get correct number of search hints. I am using my application and Apple Maps application on same device and on the same 3G wifi network(3G SIM router).
What everything I tried:
- I tried to specify region with radius.
 - To cancel geocode from previous request.
 
in method:
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText;
i have following piece of code:
    ...
    CLGeocoder *geocoder = [[CLGeocoder alloc] init];
    NSString *location = [NSString stringWithFormat:@"%@", searchText];
//    CLRegion *region = [[CLRegion alloc] initCircularRegionWithCenter:coord
//                                                               radius:100000000 identifier:@"Hint Region"];
//    [geocoder cancelGeocode];
    [geocoder geocodeAddressString:location
                 completionHandler:^(NSArray *placemarks, NSError *error) {
                     if (error != nil) {
                         DDLogCVerbose(@"Error %@", [error description]);
                         [searchHintArray removeAllObjects];
                         [searchHintTableView reloadData];
                         return;
                     }
                     DDLogCVerbose(@"CLGeocoder >> %@", [placemarks description]);
                     //to get rid of unwanted results when searchText is inadequate
                     //even when previous partial results are not removed I don't get that many results as Apple Maps application.
                     [searchHintArray removeAllObjects]; 
                     [placemarks enumerateObjectsUsingBlock:^(CLPlacemark *placemark, NSUInteger idx, BOOL *stop) {
                         MKPlacemark *mkPlacemark = [[MKPlacemark alloc] initWithPlacemark:placemark];
                         [searchHintArray addObject:mkPlacemark];
                     }];
                     [searchHintTableView reloadData];
                 }
    ];
...
input parameters are following
- searchText: Ess
 - latitude: 51.46
 - longitude: 7.01
 
Instead of 10 results(address related) from Apple Maps I get 2 at most(NSArray *placemarks).
With complete name of city "Essen" this code returns just 1 result. Apple maps 10 again.
Am I using the right API to display partial results as search hints? If not then how to do it correctly or which API should I use?
EDIT: As I was requested to explain why this is not duplicate I am editing this post. My Question was how to achieve same results as Apple Maps iOS app. I get accurate location when I enter bigger part of address or full address. I just don't get the same number of results when I enter small parts of address.