Commits

Ronald Oussoren  committed 46ec15b

Port CoreLocation wrappers to OSX 10.8

This adds metadata for OSX 10.8 and the relevant tests.

Also adds some missing tests for OSX 10.7

  • Participants
  • Parent commits f91563d

Comments (0)

Files changed (12)

File pyobjc-framework-CoreLocation/Doc/api-notes-CoreLocation.txt

+API Notes for the CoreLocation framework
+=========================================
+
+The entire CoreLocation framework is supported
+
+* ``kCLErrorGeocodeFoundNoResult``, ``kCLErrorGeocodeCanceled``
+
+   These contants have different values in the OSX 10.7
+   and 10.8 SDKs. With PyObjC you get the value
+   corresponding to the OSX release you are running
+   on.

File pyobjc-framework-CoreLocation/Lib/CoreLocation/__init__.py

 import Foundation
 
 from CoreLocation import _metadata
+import os
 
-sys.modules['CoreLocation'] = objc.ObjCLazyModule(
+if int(os.uname()[2].split('.')[0]) < 12:
+    # OSX <= 10.7
+    kCLErrorGeocodeFoundNoResult = 7
+    kCLErrorGeocodeCanceled = 8
+else:
+    # OSX 10.8 or later
+    kCLErrorGeocodeFoundNoResult = 8
+    kCLErrorGeocodeCanceled = 10
+
+sys.modules['CoreLocation'] = mod = objc.ObjCLazyModule(
     "CoreLocation", "com.apple.corelocation",
     objc.pathForFramework("/System/Library/Frameworks/CoreLocation.framework"),
     _metadata.__dict__, None, {
         '__doc__': __doc__,
         '__path__': __path__,
-        'objc': objc
+        'objc': objc,
+        'kCLErrorGeocodeFoundNoResult': kCLErrorGeocodeFoundNoResult,
+        'kCLErrorGeocodeCanceled': kCLErrorGeocodeCanceled,
     }, (Foundation,))
+

File pyobjc-framework-CoreLocation/Lib/CoreLocation/_metadata.py

 # This file is generated by objective.metadata
 #
-# Last update: Thu May 24 15:31:35 2012
+# Last update: Wed Jun 27 17:03:19 2012
 
 import objc, sys
 
 misc = {
 }
 misc.update({'CLLocationCoordinate2D': objc.createStructType('CLLocationCoordinate2D', b'{_CLLocationCoordinate2D=dd}', ['latitude', 'longitude'])})
-constants = '''$kCLDistanceFilterNone@d$kCLErrorDomain$kCLHeadingFilterNone@d$kCLLocationAccuracyBest@d$kCLLocationAccuracyBestForNavigation@d$kCLLocationAccuracyHundredMeters@d$kCLLocationAccuracyKilometer@d$kCLLocationAccuracyNearestTenMeters@d$kCLLocationAccuracyThreeKilometers@d$kCLLocationCoordinate2DInvalid@{_CLLocationCoordinate2D=dd}$'''
-enums = '''$CLDeviceOrientationFaceDown@6$CLDeviceOrientationFaceUp@5$CLDeviceOrientationLandscapeLeft@3$CLDeviceOrientationLandscapeRight@4$CLDeviceOrientationPortrait@1$CLDeviceOrientationPortraitUpsideDown@2$CLDeviceOrientationUnknown@0$kCLAuthorizationStatusAuthorized@3$kCLAuthorizationStatusDenied@2$kCLAuthorizationStatusNotDetermined@0$kCLAuthorizationStatusRestricted@1$kCLErrorDenied@1$kCLErrorGeocodeCanceled@8$kCLErrorGeocodeFoundNoResult@7$kCLErrorHeadingFailure@3$kCLErrorLocationUnknown@0$kCLErrorNetwork@2$kCLErrorRegionMonitoringDenied@4$kCLErrorRegionMonitoringFailure@5$kCLErrorRegionMonitoringSetupDelayed@6$'''
+constants = '''$kCLDistanceFilterNone@d$kCLErrorDomain$kCLErrorUserInfoAlternateRegionKey$kCLHeadingFilterNone@d$kCLLocationAccuracyBest@d$kCLLocationAccuracyBestForNavigation@d$kCLLocationAccuracyHundredMeters@d$kCLLocationAccuracyKilometer@d$kCLLocationAccuracyNearestTenMeters@d$kCLLocationAccuracyThreeKilometers@d$kCLLocationCoordinate2DInvalid@{_CLLocationCoordinate2D=dd}$'''
+enums = '''$CLDeviceOrientationFaceDown@6$CLDeviceOrientationFaceUp@5$CLDeviceOrientationLandscapeLeft@3$CLDeviceOrientationLandscapeRight@4$CLDeviceOrientationPortrait@1$CLDeviceOrientationPortraitUpsideDown@2$CLDeviceOrientationUnknown@0$kCLAuthorizationStatusAuthorized@3$kCLAuthorizationStatusDenied@2$kCLAuthorizationStatusNotDetermined@0$kCLAuthorizationStatusRestricted@1$kCLErrorDenied@1$kCLErrorGeocodeFoundPartialResult@9$kCLErrorHeadingFailure@3$kCLErrorLocationUnknown@0$kCLErrorNetwork@2$kCLErrorRegionMonitoringDenied@4$kCLErrorRegionMonitoringFailure@5$kCLErrorRegionMonitoringResponseDelayed@7$kCLErrorRegionMonitoringSetupDelayed@6$'''
 misc.update({})
 functions={'CLLocationCoordinate2DIsValid': (b'Z{_CLLocationCoordinate2D=dd}',), 'CLLocationCoordinate2DMake': (b'{_CLLocationCoordinate2D=dd}dd',)}
 r = objc.registerMetaDataForSelector
 objc._updatingMetadata(True)
 try:
+    r(b'CLGeocoder', b'geocodeAddressDictionary:completionHandler:', {'arguments': {3: {'callable': {'retval': {'type': b'v'}, 'arguments': {0: {'type': b'^v'}, 1: {'type': b'@'}, 2: {'type': b'@'}}}}}})
+    r(b'CLGeocoder', b'geocodeAddressString:completionHandler:', {'arguments': {3: {'callable': {'retval': {'type': b'v'}, 'arguments': {0: {'type': b'^v'}, 1: {'type': b'@'}, 2: {'type': b'@'}}}}}})
+    r(b'CLGeocoder', b'geocodeAddressString:inRegion:completionHandler:', {'arguments': {4: {'callable': {'retval': {'type': b'v'}, 'arguments': {0: {'type': b'^v'}, 1: {'type': b'@'}, 2: {'type': b'@'}}}}}})
+    r(b'CLGeocoder', b'isGeocoding', {'retval': {'type': b'Z'}})
+    r(b'CLGeocoder', b'reverseGeocodeLocation:completionHandler:', {'arguments': {3: {'callable': {'retval': {'type': b'v'}, 'arguments': {0: {'type': b'^v'}, 1: {'type': b'@'}, 2: {'type': b'@'}}}}}})
     r(b'CLLocation', b'coordinate', {'retval': {'type': '{_CLLocationCoordinate2D=dd}'}})
     r(b'CLLocation', b'initWithCoordinate:altitude:horizontalAccuracy:verticalAccuracy:course:speed:timestamp:', {'arguments': {2: {'type': b'{_CLLocationCoordinate2D=dd}'}}})
     r(b'CLLocation', b'initWithCoordinate:altitude:horizontalAccuracy:verticalAccuracy:timestamp:', {'arguments': {2: {'type': '{_CLLocationCoordinate2D=dd}'}}})
     r(b'NSObject', b'locationManager:didEnterRegion:', {'required': False, 'retval': {'type': b'v'}, 'arguments': {2: {'type': b'@'}, 3: {'type': b'@'}}})
     r(b'NSObject', b'locationManager:didExitRegion:', {'required': False, 'retval': {'type': b'v'}, 'arguments': {2: {'type': b'@'}, 3: {'type': b'@'}}})
     r(b'NSObject', b'locationManager:didFailWithError:', {'required': False, 'retval': {'type': b'v'}, 'arguments': {2: {'type': b'@'}, 3: {'type': b'@'}}})
+    r(b'NSObject', b'locationManager:didStartMonitoringForRegion:', {'required': False, 'retval': {'type': b'v'}, 'arguments': {2: {'type': b'@'}, 3: {'type': b'@'}}})
     r(b'NSObject', b'locationManager:didUpdateHeading:', {'required': False, 'retval': {'type': b'v'}, 'arguments': {2: {'type': b'@'}, 3: {'type': b'@'}}})
     r(b'NSObject', b'locationManager:didUpdateToLocation:fromLocation:', {'required': False, 'retval': {'type': b'v'}, 'arguments': {2: {'type': b'@'}, 3: {'type': b'@'}, 4: {'type': b'@'}}})
     r(b'NSObject', b'locationManager:monitoringDidFailForRegion:withError:', {'required': False, 'retval': {'type': b'v'}, 'arguments': {2: {'type': b'@'}, 3: {'type': b'@'}, 4: {'type': b'@'}}})

File pyobjc-framework-CoreLocation/PyObjCTest/test_clerror.py

 
 from PyObjCTools.TestSupport import *
 from CoreLocation import *
+import os
 
 try:
     unicode
         self.assertEqual(kCLErrorLocationUnknown, 0)
         self.assertEqual(kCLErrorDenied, 1)
 
+    @min_os_level('10.7')
+    def testConstants10_7(self):
+        self.assertEqual(kCLErrorNetwork, 2)
+        self.assertEqual(kCLErrorHeadingFailure, 3)
+        self.assertEqual(kCLErrorRegionMonitoringDenied, 4)
+        self.assertEqual(kCLErrorRegionMonitoringFailure, 5)
+        self.assertEqual(kCLErrorRegionMonitoringSetupDelayed, 6)
+
+        if int(os.uname()[2].split('.')[0]) < 12:
+            self.assertEqual(kCLErrorFoundNoResult, 7)
+            self.assertEqual(kCLErrorCanceled, 8)
+
+    @min_os_level('10.8')
+    def testConstants10_8(self):
+        self.assertEqual(kCLErrorRegionMonitoringResponseDelayed, 7)
+        self.assertEqual(kCLErrorGeocodeFoundNoResult, 8)
+        self.assertEqual(kCLErrorGeocodeFoundPartialResult, 9)
+        self.assertEqual(kCLErrorGeocodeCanceled, 10)
+
 if __name__ == "__main__":
     main()

File pyobjc-framework-CoreLocation/PyObjCTest/test_clgeocoder.py

+from PyObjCTools.TestSupport import *
+from CoreLocation import *
+
+CLGeocodeCompletionHandler = b'v@@'
+
+class TestCLGeocoder (TestCase):
+    @min_os_level('10.8')
+    def testMethods10_8(self):
+        self.assertArgIsBlock(CLGeocoder.geocodeAddressDictionary_completionHandler_, 1, CLGeocodeCompletionHandler)
+        self.assertArgIsBlock(CLGeocoder.geocodeAddressString_completionHandler_, 1, CLGeocodeCompletionHandler)
+        self.assertArgIsBlock(CLGeocoder.geocodeAddressString_inRegion_completionHandler_, 2, CLGeocodeCompletionHandler)
+        self.assertArgIsBlock(CLGeocoder.reverseGeocodeLocation_completionHandler_, 1, CLGeocodeCompletionHandler)
+
+        self.assertResultIsBOOL(CLGeocoder.isGeocoding)
+
+if __name__ == "__main__":
+    main()

File pyobjc-framework-CoreLocation/PyObjCTest/test_clheading.py

+
+from PyObjCTools.TestSupport import *
+from CoreLocation import *
+
+try:
+    unicode
+except NameError:
+    unicode = str
+
+class TestCLHeading (TestCase):
+    @min_os_level('10.7')
+    def testConstants10_7(self):
+        self.assertIsInstance(kCLHeadingFilterNone, float)
+
+
+if __name__ == "__main__":
+    main()

File pyobjc-framework-CoreLocation/PyObjCTest/test_cllocation.py

         self.assertIsInstance(kCLLocationAccuracyKilometer, float)
         self.assertIsInstance(kCLLocationAccuracyThreeKilometers, float)
 
+    @min_os_level('10.7')
+    def testConstants10_7(self):
+        self.assertIsInstance(kCLLocationAccuracyBestForNavigation, float)
+        self.assertIsInstance(kCLLocationCoordinate2DInvalid, CLLocationCoordinate2D)
+
     @min_os_level('10.6')
     def testMethods(self):
         self.assertResultHasType(CLLocation.coordinate, CLLocationCoordinate2D.__typestr__)
         self.assertArgHasType(CLLocation.initWithCoordinate_altitude_horizontalAccuracy_verticalAccuracy_timestamp_, 0,
                 CLLocationCoordinate2D.__typestr__)
 
+    @min_os_level('10.7')
+    def testFunctions10_7(self):
+        self.assertResultIsBOOL(CLLocationCoordinate2DIsValid)
+        self.assertFalse(CLLocationCoordinate2DIsValid(kCLLocationCoordinate2DInvalid))
+        
+        loc = CLLocationCoordinate2DMake(0.0, 0.0)
+        self.assertIsInstance(loc, CLLocationCoordinate2D)
+
+        self.assertTrue(CLLocationCoordinate2DIsValid(loc))
 
 if __name__ == "__main__":
     main()

File pyobjc-framework-CoreLocation/PyObjCTest/test_cllocationmanager.py

 class TestCLLocationManager (TestCase):
     @min_os_level('10.6')
     def testMethods(self):
+        self.assertResultIsBOOL(CLLocationManager.alloc().init().locationServicesEnabled)
+
+    @min_os_level('10.7')
+    def testConstants10_7(self):
+        self.assertEqual(CLDeviceOrientationUnknown, 0)
+        self.assertEqual(CLDeviceOrientationPortrait, 1)
+        self.assertEqual(CLDeviceOrientationPortraitUpsideDown, 2)
+        self.assertEqual(CLDeviceOrientationLandscapeLeft, 3)
+        self.assertEqual(CLDeviceOrientationLandscapeRight, 4)
+        self.assertEqual(CLDeviceOrientationFaceUp, 5)
+        self.assertEqual(CLDeviceOrientationFaceDown, 6)
+
+        self.assertEqual(kCLAuthorizationStatusNotDetermined, 0)
+        self.assertEqual(kCLAuthorizationStatusRestricted, 1)
+        self.assertEqual(kCLAuthorizationStatusDenied, 2)
+        self.assertEqual(kCLAuthorizationStatusAuthorized, 3)
+
+    @min_os_level('10.7')
+    def testMethods10_7(self):
         self.assertResultIsBOOL(CLLocationManager.locationServicesEnabled)
-
+        self.assertResultIsBOOL(CLLocationManager.headingAvailable)
+        self.assertResultIsBOOL(CLLocationManager.significantLocationChangeMonitoringAvailable)
+        self.assertResultIsBOOL(CLLocationManager.regionMonitoringAvailable)
+        self.assertResultIsBOOL(CLLocationManager.regionMonitoringEnabled)
 
 if __name__ == "__main__":
     main()

File pyobjc-framework-CoreLocation/PyObjCTest/test_clregion.py

+from PyObjCTools.TestSupport import *
+from CoreLocation import *
+
+
+class TestCLRegion (TestCase):
+
+    @min_os_level('10.7')
+    def testMethods10_7(self):
+        self.assertResultIsBOOL(CLRegion.containsCoordinate_)
+        self.assertArgHasType(CLRegion.containsCoordinate_, 0, CLLocationCoordinate2D.__typestr__)
+
+if __name__ == "__main__":
+    main()

File pyobjc-framework-CoreLocation/metadata/CoreLocation.fwinfo

 # for information on how to update this file.
 {
  "definitions": {
+  "enum": {
+    "kCLErrorGeocodeFoundNoResult": { "ignore": true },
+    "kCLErrorGeocodeCanceled": { "ignore": true }
+  },
   "classes": {
+   "CLGeocoder": {
+     "methods": [
+        {
+	  "selector": "geocodeAddressDictionary:completionHandler:",
+	  "class_method": false,
+	  "args": {
+	     "1": {
+	        "callable": {
+		   "arguments": {
+		      "0": { "typestr": "^v" },
+		      "1": { "typestr": "@" },
+		      "2": { "typestr": "@" }
+		   },
+		   "retval": { "typestr": "v" }
+		}
+	     }
+	  }
+	},
+        {
+	  "selector": "geocodeAddressString:completionHandler:",
+	  "class_method": false,
+	  "args": {
+	     "1": {
+	        "callable": {
+		   "arguments": {
+		      "0": { "typestr": "^v" },
+		      "1": { "typestr": "@" },
+		      "2": { "typestr": "@" }
+		   },
+		   "retval": { "typestr": "v" }
+		}
+	     }
+	  }
+	},
+	{
+          "selector": "geocodeAddressString:inRegion:completionHandler:",
+	  "class_method": false,
+	  "args": {
+	     "2": {
+	        "callable": {
+		   "arguments": {
+		      "0": { "typestr": "^v" },
+		      "1": { "typestr": "@" },
+		      "2": { "typestr": "@" }
+		   },
+		   "retval": { "typestr": "v" }
+		}
+	     }
+	  }
+	},
+        {
+	  "selector": "reverseGeocodeLocation:completionHandler:",
+	  "class_method": false,
+	  "args": {
+	     "1": {
+	        "callable": {
+		   "arguments": {
+		      "0": { "typestr": "^v" },
+		      "1": { "typestr": "@" },
+		      "2": { "typestr": "@" }
+		   },
+		   "retval": { "typestr": "v" }
+		}
+	     }
+	  }
+	}
+     ]
+   },
    "CLLocation": {
     "methods": [
      {
   "functions": {}, 
   "informal_protocols": {}
  }
-}
+}

File pyobjc-framework-CoreLocation/metadata/raw/i386-10.8.fwinfo

+#             GENERATED FILE DO NOT EDIT
+#
+# This file was generated by objective.metadata
+# Last update: Wed Jun 27 15:37:16 2012
+{
+ "arch": "i386", 
+ "definitions": {
+  "aliases": {}, 
+  "called_definitions": {}, 
+  "cftypes": {}, 
+  "classes": {
+   "CLGeocoder": {
+    "categories": [], 
+    "methods": [
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "@?", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "v", 
+       "typestr_special": false
+      }, 
+      "selector": "reverseGeocodeLocation:completionHandler:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "@?", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "v", 
+       "typestr_special": false
+      }, 
+      "selector": "geocodeAddressDictionary:completionHandler:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "@?", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "v", 
+       "typestr_special": false
+      }, 
+      "selector": "geocodeAddressString:completionHandler:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "@?", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "v", 
+       "typestr_special": false
+      }, 
+      "selector": "geocodeAddressString:inRegion:completionHandler:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "v", 
+       "typestr_special": false
+      }, 
+      "selector": "cancelGeocode", 
+      "visibility": "public"
+     }
+    ], 
+    "name": "CLGeocoder", 
+    "properties": [
+     {
+      "attributes": [
+       "nonatomic", 
+       "readonly", 
+       [
+        "getter", 
+        "isGeocoding"
+       ]
+      ], 
+      "name": "geocoding", 
+      "typestr": "Z", 
+      "typestr_special": true
+     }
+    ], 
+    "protocols": [], 
+    "super": "NSObject"
+   }, 
+   "CLHeading": {
+    "categories": [], 
+    "methods": [
+     {
+      "args": [], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "@", 
+       "typestr_special": false
+      }, 
+      "selector": "description", 
+      "visibility": "public"
+     }
+    ], 
+    "name": "CLHeading", 
+    "properties": [
+     {
+      "attributes": [
+       "readonly", 
+       "nonatomic"
+      ], 
+      "name": "magneticHeading", 
+      "typestr": "d", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly", 
+       "nonatomic"
+      ], 
+      "name": "trueHeading", 
+      "typestr": "d", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly", 
+       "nonatomic"
+      ], 
+      "name": "headingAccuracy", 
+      "typestr": "d", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly", 
+       "nonatomic"
+      ], 
+      "name": "x", 
+      "typestr": "d", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly", 
+       "nonatomic"
+      ], 
+      "name": "y", 
+      "typestr": "d", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly", 
+       "nonatomic"
+      ], 
+      "name": "z", 
+      "typestr": "d", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly", 
+       "nonatomic"
+      ], 
+      "name": "timestamp", 
+      "typestr": "@", 
+      "typestr_special": false
+     }
+    ], 
+    "protocols": [
+     "NSCoding", 
+     "NSCopying"
+    ], 
+    "super": "NSObject"
+   }, 
+   "CLLocation": {
+    "categories": [], 
+    "methods": [
+     {
+      "args": [
+       {
+        "typestr": "d", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "d", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "@", 
+       "typestr_special": false
+      }, 
+      "selector": "initWithLatitude:longitude:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "{_CLLocationCoordinate2D=dd}", 
+        "typestr_special": true
+       }, 
+       {
+        "typestr": "d", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "d", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "d", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "@", 
+       "typestr_special": false
+      }, 
+      "selector": "initWithCoordinate:altitude:horizontalAccuracy:verticalAccuracy:timestamp:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "{_CLLocationCoordinate2D=dd}", 
+        "typestr_special": true
+       }, 
+       {
+        "typestr": "d", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "d", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "d", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "d", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "d", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "@", 
+       "typestr_special": false
+      }, 
+      "selector": "initWithCoordinate:altitude:horizontalAccuracy:verticalAccuracy:course:speed:timestamp:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "@", 
+       "typestr_special": false
+      }, 
+      "selector": "description", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "d", 
+       "typestr_special": false
+      }, 
+      "selector": "getDistanceFrom:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "d", 
+       "typestr_special": false
+      }, 
+      "selector": "distanceFromLocation:", 
+      "visibility": "public"
+     }
+    ], 
+    "name": "CLLocation", 
+    "properties": [
+     {
+      "attributes": [
+       "readonly", 
+       "nonatomic"
+      ], 
+      "name": "coordinate", 
+      "typestr": "{_CLLocationCoordinate2D=dd}", 
+      "typestr_special": true
+     }, 
+     {
+      "attributes": [
+       "readonly", 
+       "nonatomic"
+      ], 
+      "name": "altitude", 
+      "typestr": "d", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly", 
+       "nonatomic"
+      ], 
+      "name": "horizontalAccuracy", 
+      "typestr": "d", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly", 
+       "nonatomic"
+      ], 
+      "name": "verticalAccuracy", 
+      "typestr": "d", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly", 
+       "nonatomic"
+      ], 
+      "name": "course", 
+      "typestr": "d", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly", 
+       "nonatomic"
+      ], 
+      "name": "speed", 
+      "typestr": "d", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly", 
+       "nonatomic"
+      ], 
+      "name": "timestamp", 
+      "typestr": "@", 
+      "typestr_special": false
+     }
+    ], 
+    "protocols": [
+     "NSCoding", 
+     "NSCopying"
+    ], 
+    "super": "NSObject"
+   }, 
+   "CLLocationManager": {
+    "categories": [], 
+    "methods": [
+     {
+      "args": [], 
+      "class_method": true, 
+      "retval": {
+       "typestr": "Z", 
+       "typestr_special": true
+      }, 
+      "selector": "locationServicesEnabled", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [], 
+      "class_method": true, 
+      "retval": {
+       "typestr": "Z", 
+       "typestr_special": true
+      }, 
+      "selector": "headingAvailable", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [], 
+      "class_method": true, 
+      "retval": {
+       "typestr": "Z", 
+       "typestr_special": true
+      }, 
+      "selector": "significantLocationChangeMonitoringAvailable", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [], 
+      "class_method": true, 
+      "retval": {
+       "typestr": "Z", 
+       "typestr_special": true
+      }, 
+      "selector": "regionMonitoringAvailable", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [], 
+      "class_method": true, 
+      "retval": {
+       "typestr": "Z", 
+       "typestr_special": true
+      }, 
+      "selector": "regionMonitoringEnabled", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [], 
+      "class_method": true, 
+      "retval": {
+       "typestr": "i", 
+       "typestr_special": false
+      }, 
+      "selector": "authorizationStatus", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "v", 
+       "typestr_special": false
+      }, 
+      "selector": "startUpdatingLocation", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "v", 
+       "typestr_special": false
+      }, 
+      "selector": "stopUpdatingLocation", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "v", 
+       "typestr_special": false
+      }, 
+      "selector": "startUpdatingHeading", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "v", 
+       "typestr_special": false
+      }, 
+      "selector": "stopUpdatingHeading", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "v", 
+       "typestr_special": false
+      }, 
+      "selector": "dismissHeadingCalibrationDisplay", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "v", 
+       "typestr_special": false
+      }, 
+      "selector": "startMonitoringSignificantLocationChanges", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "v", 
+       "typestr_special": false
+      }, 
+      "selector": "stopMonitoringSignificantLocationChanges", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "d", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "v", 
+       "typestr_special": false
+      }, 
+      "selector": "startMonitoringForRegion:desiredAccuracy:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "v", 
+       "typestr_special": false
+      }, 
+      "selector": "stopMonitoringForRegion:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "v", 
+       "typestr_special": false
+      }, 
+      "selector": "startMonitoringForRegion:", 
+      "visibility": "public"
+     }
+    ], 
+    "name": "CLLocationManager", 
+    "properties": [
+     {
+      "attributes": [
+       "assign", 
+       "nonatomic"
+      ], 
+      "name": "delegate", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly", 
+       "nonatomic"
+      ], 
+      "name": "locationServicesEnabled", 
+      "typestr": "Z", 
+      "typestr_special": true
+     }, 
+     {
+      "attributes": [
+       "copy", 
+       "nonatomic"
+      ], 
+      "name": "purpose", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "assign", 
+       "nonatomic"
+      ], 
+      "name": "distanceFilter", 
+      "typestr": "d", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "assign", 
+       "nonatomic"
+      ], 
+      "name": "desiredAccuracy", 
+      "typestr": "d", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly", 
+       "nonatomic"
+      ], 
+      "name": "location", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly", 
+       "nonatomic"
+      ], 
+      "name": "headingAvailable", 
+      "typestr": "Z", 
+      "typestr_special": true
+     }, 
+     {
+      "attributes": [
+       "assign", 
+       "nonatomic"
+      ], 
+      "name": "headingFilter", 
+      "typestr": "d", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "assign", 
+       "nonatomic"
+      ], 
+      "name": "headingOrientation", 
+      "typestr": "i", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly", 
+       "nonatomic"
+      ], 
+      "name": "heading", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly", 
+       "nonatomic"
+      ], 
+      "name": "maximumRegionMonitoringDistance", 
+      "typestr": "d", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly", 
+       "nonatomic"
+      ], 
+      "name": "monitoredRegions", 
+      "typestr": "@", 
+      "typestr_special": false
+     }
+    ], 
+    "protocols": [], 
+    "super": "NSObject"
+   }, 
+   "CLPlacemark": {
+    "categories": [], 
+    "methods": [
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "@", 
+       "typestr_special": false
+      }, 
+      "selector": "initWithPlacemark:", 
+      "visibility": "public"
+     }
+    ], 
+    "name": "CLPlacemark", 
+    "properties": [
+     {
+      "attributes": [
+       "nonatomic", 
+       "readonly"
+      ], 
+      "name": "location", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "nonatomic", 
+       "readonly"
+      ], 
+      "name": "region", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "nonatomic", 
+       "readonly"
+      ], 
+      "name": "addressDictionary", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "nonatomic", 
+       "readonly"
+      ], 
+      "name": "name", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "nonatomic", 
+       "readonly"
+      ], 
+      "name": "thoroughfare", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "nonatomic", 
+       "readonly"
+      ], 
+      "name": "subThoroughfare", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "nonatomic", 
+       "readonly"
+      ], 
+      "name": "locality", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "nonatomic", 
+       "readonly"
+      ], 
+      "name": "subLocality", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "nonatomic", 
+       "readonly"
+      ], 
+      "name": "administrativeArea", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "nonatomic", 
+       "readonly"
+      ], 
+      "name": "subAdministrativeArea", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "nonatomic", 
+       "readonly"
+      ], 
+      "name": "postalCode", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "nonatomic", 
+       "readonly"
+      ], 
+      "name": "ISOcountryCode", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "nonatomic", 
+       "readonly"
+      ], 
+      "name": "country", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "nonatomic", 
+       "readonly"
+      ], 
+      "name": "inlandWater", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "nonatomic", 
+       "readonly"
+      ], 
+      "name": "ocean", 
+      "typestr": "@", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "nonatomic", 
+       "readonly"
+      ], 
+      "name": "areasOfInterest", 
+      "typestr": "@", 
+      "typestr_special": false
+     }
+    ], 
+    "protocols": [
+     "NSCoding", 
+     "NSCopying"
+    ], 
+    "super": "NSObject"
+   }, 
+   "CLRegion": {
+    "categories": [], 
+    "methods": [
+     {
+      "args": [
+       {
+        "typestr": "{_CLLocationCoordinate2D=dd}", 
+        "typestr_special": true
+       }, 
+       {
+        "typestr": "d", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "@", 
+       "typestr_special": false
+      }, 
+      "selector": "initCircularRegionWithCenter:radius:identifier:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "{_CLLocationCoordinate2D=dd}", 
+        "typestr_special": true
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "Z", 
+       "typestr_special": true
+      }, 
+      "selector": "containsCoordinate:", 
+      "visibility": "public"
+     }
+    ], 
+    "name": "CLRegion", 
+    "properties": [
+     {
+      "attributes": [
+       "readonly", 
+       "nonatomic"
+      ], 
+      "name": "center", 
+      "typestr": "{_CLLocationCoordinate2D=dd}", 
+      "typestr_special": true
+     }, 
+     {
+      "attributes": [
+       "readonly", 
+       "nonatomic"
+      ], 
+      "name": "radius", 
+      "typestr": "d", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly", 
+       "nonatomic"
+      ], 
+      "name": "identifier", 
+      "typestr": "@", 
+      "typestr_special": false
+     }
+    ], 
+    "protocols": [
+     "NSCoding", 
+     "NSCopying"
+    ], 
+    "super": "NSObject"
+   }
+  }, 
+  "enum": {
+   "CLDeviceOrientationFaceDown": 6, 
+   "CLDeviceOrientationFaceUp": 5, 
+   "CLDeviceOrientationLandscapeLeft": 3, 
+   "CLDeviceOrientationLandscapeRight": 4, 
+   "CLDeviceOrientationPortrait": 1, 
+   "CLDeviceOrientationPortraitUpsideDown": 2, 
+   "CLDeviceOrientationUnknown": 0, 
+   "kCLAuthorizationStatusAuthorized": 3, 
+   "kCLAuthorizationStatusDenied": 2, 
+   "kCLAuthorizationStatusNotDetermined": 0, 
+   "kCLAuthorizationStatusRestricted": 1, 
+   "kCLErrorDenied": 1, 
+   "kCLErrorGeocodeCanceled": 10, 
+   "kCLErrorGeocodeFoundNoResult": 8, 
+   "kCLErrorGeocodeFoundPartialResult": 9, 
+   "kCLErrorHeadingFailure": 3, 
+   "kCLErrorLocationUnknown": 0, 
+   "kCLErrorNetwork": 2, 
+   "kCLErrorRegionMonitoringDenied": 4, 
+   "kCLErrorRegionMonitoringFailure": 5, 
+   "kCLErrorRegionMonitoringResponseDelayed": 7, 
+   "kCLErrorRegionMonitoringSetupDelayed": 6
+  }, 
+  "expressions": {}, 
+  "externs": {
+   "kCLDistanceFilterNone": {
+    "typestr": "d"
+   }, 
+   "kCLErrorDomain": {
+    "typestr": "@"
+   }, 
+   "kCLErrorUserInfoAlternateRegionKey": {
+    "typestr": "@"
+   }, 
+   "kCLHeadingFilterNone": {
+    "typestr": "d"
+   }, 
+   "kCLLocationAccuracyBest": {
+    "typestr": "d"
+   }, 
+   "kCLLocationAccuracyBestForNavigation": {
+    "typestr": "d"
+   }, 
+   "kCLLocationAccuracyHundredMeters": {
+    "typestr": "d"
+   }, 
+   "kCLLocationAccuracyKilometer": {
+    "typestr": "d"
+   }, 
+   "kCLLocationAccuracyNearestTenMeters": {
+    "typestr": "d"
+   }, 
+   "kCLLocationAccuracyThreeKilometers": {
+    "typestr": "d"
+   }, 
+   "kCLLocationCoordinate2DInvalid": {
+    "typestr": "{_CLLocationCoordinate2D=dd}"
+   }
+  }, 
+  "formal_protocols": {
+   "CLLocationManagerDelegate": {
+    "implements": [
+     "NSObject"
+    ], 
+    "methods": [
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "required": false, 
+      "retval": {
+       "typestr": "v", 
+       "typestr_special": false
+      }, 
+      "selector": "locationManager:didUpdateToLocation:fromLocation:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "required": false, 
+      "retval": {
+       "typestr": "v", 
+       "typestr_special": false
+      }, 
+      "selector": "locationManager:didUpdateHeading:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "required": false, 
+      "retval": {
+       "typestr": "Z", 
+       "typestr_special": true
+      }, 
+      "selector": "locationManagerShouldDisplayHeadingCalibration:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "required": false, 
+      "retval": {
+       "typestr": "v", 
+       "typestr_special": false
+      }, 
+      "selector": "locationManager:didEnterRegion:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "required": false, 
+      "retval": {
+       "typestr": "v", 
+       "typestr_special": false
+      }, 
+      "selector": "locationManager:didExitRegion:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "required": false, 
+      "retval": {
+       "typestr": "v", 
+       "typestr_special": false
+      }, 
+      "selector": "locationManager:didFailWithError:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "required": false, 
+      "retval": {
+       "typestr": "v", 
+       "typestr_special": false
+      }, 
+      "selector": "locationManager:monitoringDidFailForRegion:withError:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "i", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "required": false, 
+      "retval": {
+       "typestr": "v", 
+       "typestr_special": false
+      }, 
+      "selector": "locationManager:didChangeAuthorizationStatus:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "required": false, 
+      "retval": {
+       "typestr": "v", 
+       "typestr_special": false
+      }, 
+      "selector": "locationManager:didStartMonitoringForRegion:", 
+      "visibility": "public"
+     }
+    ], 
+    "properties": []
+   }
+  }, 
+  "func_macros": {}, 
+  "functions": {
+   "CLLocationCoordinate2DIsValid": {
+    "args": [
+     {
+      "name": "coord", 
+      "typestr": "{_CLLocationCoordinate2D=dd}"
+     }
+    ], 
+    "retval": {
+     "typestr": "Z"
+    }
+   }, 
+   "CLLocationCoordinate2DMake": {
+    "args": [
+     {
+      "name": "latitude", 
+      "typestr": "d"
+     }, 
+     {
+      "name": "longitude", 
+      "typestr": "d"
+     }
+    ], 
+    "retval": {
+     "typestr": "{_CLLocationCoordinate2D=dd}"
+    }
+   }
+  }, 
+  "informal_protocols": {}, 
+  "literals": {}, 
+  "structs": {
+   "CLLocationCoordinate2D": {
+    "fieldnames": [
+     "latitude", 
+     "longitude"
+    ], 
+    "special": true, 
+    "typestr": "{_CLLocationCoordinate2D=dd}"
+   }
+  }
+ }, 
+ "framework": "CoreLocation", 
+ "headers": [
+  "CLError.h", 
+  "CLErrorDomain.h", 
+  "CLGeocoder.h", 
+  "CLHeading.h", 
+  "CLLocation.h", 
+  "CLLocationManager.h", 
+  "CLLocationManagerDelegate.h", 
+  "CLPlacemark.h", 
+  "CLRegion.h"
+ ], 
+ "release": "10.8", 
+ "sdk": "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk"
+}

File pyobjc-framework-CoreLocation/metadata/raw/x86_64-10.8.fwinfo

+#             GENERATED FILE DO NOT EDIT
+#
+# This file was generated by objective.metadata
+# Last update: Wed Jun 27 15:36:51 2012
+{
+ "arch": "x86_64", 
+ "definitions": {
+  "aliases": {}, 
+  "called_definitions": {}, 
+  "cftypes": {}, 
+  "classes": {
+   "CLGeocoder": {
+    "categories": [], 
+    "methods": [
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "@?", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "v", 
+       "typestr_special": false
+      }, 
+      "selector": "reverseGeocodeLocation:completionHandler:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "@?", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "v", 
+       "typestr_special": false
+      }, 
+      "selector": "geocodeAddressDictionary:completionHandler:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "@?", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "v", 
+       "typestr_special": false
+      }, 
+      "selector": "geocodeAddressString:completionHandler:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "@", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "@?", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "v", 
+       "typestr_special": false
+      }, 
+      "selector": "geocodeAddressString:inRegion:completionHandler:", 
+      "visibility": "public"
+     }, 
+     {
+      "args": [], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "v", 
+       "typestr_special": false
+      }, 
+      "selector": "cancelGeocode", 
+      "visibility": "public"
+     }
+    ], 
+    "name": "CLGeocoder", 
+    "properties": [
+     {
+      "attributes": [
+       "nonatomic", 
+       "readonly", 
+       [
+        "getter", 
+        "isGeocoding"
+       ]
+      ], 
+      "name": "geocoding", 
+      "typestr": "Z", 
+      "typestr_special": true
+     }
+    ], 
+    "protocols": [], 
+    "super": "NSObject"
+   }, 
+   "CLHeading": {
+    "categories": [], 
+    "methods": [
+     {
+      "args": [], 
+      "class_method": false, 
+      "retval": {
+       "typestr": "@", 
+       "typestr_special": false
+      }, 
+      "selector": "description", 
+      "visibility": "public"
+     }
+    ], 
+    "name": "CLHeading", 
+    "properties": [
+     {
+      "attributes": [
+       "readonly", 
+       "nonatomic"
+      ], 
+      "name": "magneticHeading", 
+      "typestr": "d", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly", 
+       "nonatomic"
+      ], 
+      "name": "trueHeading", 
+      "typestr": "d", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly", 
+       "nonatomic"
+      ], 
+      "name": "headingAccuracy", 
+      "typestr": "d", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly", 
+       "nonatomic"
+      ], 
+      "name": "x", 
+      "typestr": "d", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly", 
+       "nonatomic"
+      ], 
+      "name": "y", 
+      "typestr": "d", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly", 
+       "nonatomic"
+      ], 
+      "name": "z", 
+      "typestr": "d", 
+      "typestr_special": false
+     }, 
+     {
+      "attributes": [
+       "readonly", 
+       "nonatomic"
+      ], 
+      "name": "timestamp", 
+      "typestr": "@", 
+      "typestr_special": false
+     }
+    ], 
+    "protocols": [
+     "NSCoding", 
+     "NSCopying"
+    ], 
+    "super": "NSObject"
+   }, 
+   "CLLocation": {
+    "categories": [], 
+    "methods": [
+     {
+      "args": [
+       {
+        "typestr": "d", 
+        "typestr_special": false
+       }, 
+       {
+        "typestr": "d", 
+        "typestr_special": false
+       }
+      ], 
+      "class_method": false,