/ / Je CLGeocoder podporovaný na iOS 4.2? - ios

Podporuje sa CLGeocoder v systéme iOS 4.2? - ios

Keď sa pozriem na dokumenty Apple, trochu ma to zmätí.

  • Na jednej strane majú výroky naznačujúce, že CLGeocoder je možné používať iOS 5 a ďalšie.
  • Na druhej strane majú vyhlásenia ako: „Pre aplikácie bežiace ďalej iOS 4.1 a staršie verzie, musíte vykonať žiadosti o spätné geokódovanie pomocou triedy MKReverseGeocoder. “
  • A čo potom rozsah 4,2 a viac? Môže podporovať CLGeocoder alebo nie?

Má niekto prostredníctvom svojej skúsenosti z prvej ruky odpoveď s nainštalovaným telefónom iPhone s nainštalovanou verziou 4.1 <verzia <5.0, na ktorej prišiel na to, či bude CLGeocoder fungovať alebo nie?

odpovede:

1 pre odpoveď č. 1

Momentálne volám [[CLGeocoder trieda] výskytyRespondToSelector: @selector (reverseGeocodeLocation: dokončeníHandler :)]

Na zariadeniach s hodnotou nižšou ako 5,0 vždy vracia hodnotu false

Stále sa snažím zistiť, prečo sa v dokumentácii uvádza, že je podporovaná 4.1.


0 pre odpoveď č. 2

Tu je citácia z Príručka programovania informácií o polohe:

V systéme iOS môžete použiť CLGeocoder aleboMKReverseGeocoder trieda na spracovanie žiadostí o spätné geokódovanie. Výhodný je CLGeocoder triedy a je k dispozícii v iOS 5.0 a novších verziách. Avšak, ak vaše Aplikácia musí bežať na starších verziách iOS, môžete použiť MKReverseGeocoder trieda.

MKReveresGeocoder je stále v 5.0, ale je zastaraný. To znamená, že ho môžete stále použiť na zjednodušenie podpory viacerých verzií systému iOS v kóde.


0 pre odpoveď č. 3
- (IBAction)geoCodeLocation:(id)sender{
[self.geoCoder reverseGeocodeLocation: locationManager.location completionHandler:
^(NSArray *placemarks, NSError *error) {
CLPlacemark *placemark = [placemarks objectAtIndex:0];
NSLog(@"placemark %@",placemark);
//String to hold address
NSString *locatedAt = [[placemark.addressDictionary valueForKey:@"FormattedAddressLines"] componentsJoinedByString:@", "];
NSLog(@"addressDictionary %@", placemark.addressDictionary);

NSLog(@"placemark %@",placemark.region);
NSLog(@"placemark %@",placemark.country);  // Give Country Name
NSLog(@"placemark %@",placemark.locality); // Extract the city name
NSLog(@"location %@",placemark.name);
NSLog(@"location %@",placemark.ocean);
NSLog(@"location %@",placemark.postalCode);
NSLog(@"location %@",placemark.subLocality);

NSLog(@"location %@",placemark.location);
//Print the location to console
NSLog(@"I am currently at %@",locatedAt);

//Set the label text to current location
[locationLabel setText:locatedAt];

}];
For more see property of CLPlacemark Link : http://developer.apple.com/library/ios/#DOCUMENTATION/CoreLocation/Reference/CLPlacemark_class/Reference/Reference.html (Support in iOS 5.0 because in previous MKReverseGeocoder is deprecated)