根据用户的位置拨打不同号码的电话

时间:2014-05-06 15:51:11

标签: ios cllocationmanager

我正在开发一款能够感知用户位置的应用,然后根据该位置拨打特定的电话号码。

我有这种方法用于实际的通话,  - (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”,我想拨打另一个电话号码。 有任何想法吗? 提前谢谢

2 个答案:

答案 0 :(得分: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]; }

答案 1 :(得分: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];