The Core Location and Map Kit frameworks can be used to create location-aware and map-based applications. The Core Location framework uses the device’s internal hardware to determine the current location of the device. The Map Kit framework enables your application to display maps to your users, put custom annotations on the maps, and so on. The availability of location services from the pure programming perspective depends on the availability of hardware on the device; if the hardware is there, it must be enabled and switched on for the Map Kit and Core Location frameworks to work. An iOS device with GPS services can use 2G, EDGE, 3G, 4G, and other technologies to determine the user’s location. Presently, almost all iOS devices support location services, but it is good programming practice to check the availability of location services before starting to use them, as we cannot predict whether in the future Apple will release a device with all hardware required to support location services.
In the new LLVM compiler shipped with Xcode for iOS 7, Apple has introduced modules. In older versions of the SDK and Xcode, to be able to use the Core Location and Map Kit frameworks, you had to import those frameworks into your target manually. But with the introduction of modules, all you have to do to use these frameworks is to import their header files into your project’s classes like so:
#import <MapKit/MapKit.h> ...