2014-05-06 65 views
0

我正在開發一款應用程序,能夠感知用戶的位置,然後根據該位置調用特定的電話號碼。根據用戶的位置撥打不同號碼的電話

我有實際的手機上調用此方法, - (IBAction)phone { [[UIApplication sharedApplication] openURL: [NSURL URLWithString:@"tel:123"]];

然後,我有用於獲取用戶的位置這種方法。

NSLog(@"Resolving the Address"); 
[geocoder reverseGeocodeLocation:currentLocation completionHandler:^(NSArray *placemarks, NSError *error) { 
    NSLog(@"Found placemarks: %@, error: %@", placemarks, error); 
    if (error == nil && [placemarks count] > 0) { 
     placemark = [placemarks lastObject]; 
     _addressLabel.text = [NSString stringWithFormat:@"%@ %@\n%@ %@\n%@\n%@", 
          placemark.subThoroughfare, placemark.thoroughfare, 
          placemark.postalCode, placemark.locality, 
          placemark.administrativeArea, 
          placemark.country]; 
    } else { 
     NSLog(@"%@", error.debugDescription); 
    } 


} ]; 

根據用戶的「placemark.locality」,我想打電話給不同的號碼。 任何想法? 預先感謝您

回答

0

你可以有個電話號碼,NSDictionary映射地方,例如:

NSDictionary *localityToPhoneNumber = @{"Paris": @"+338123710", @"London": @"+412345678"}; 

然後你就可以得到屬於一個地方的電話號碼並撥打它:

NSString *phoneNumber = [localityToPhoneNumber objectForKey:placemark.locality]; 
NSString *tel = [NSString stringWithFormat:@"tel:%@", phoneNumber]; 
[[UIApplication sharedApplication] openURL: [NSURL URLWithString:tel]; 
0

假設這是一個最佳實踐的問題: 映射到一個NSDictionary,然後通過placemark.locality選擇,然後撥打電話。

NSDictionary *map = @{ 
         @"New York" : @"+1 212-226-3126", 
         @"San Francisco" : @"+1 415-392-0202" 
         }; 

if ([[map allKeys] containsObject:placemark.locality]) 
{ phoneNumber = [map objectForKey:placemark.locality]; }