我正在开发一款能够感知用户位置的应用,然后根据该位置拨打特定的电话号码。
我有这种方法用于实际的通话,
- (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 :(得分: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];