#import "XChannelSDK/XChannel.h"\r\n\r\n- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {\r\n [XChannel setAPIKey:XCHANNEL_API_KEY secret:@"YOUR_XCHANNEL_SECRET_KEY"]; [[LocationManager sharedInstance] startLocationQuery];\r\n\r\n return YES;\r\n}\r\n\r\n//LocationManager::startLocationQuery -- query for the location data\r\n-(void)startLocationQuery { ... [locationManager startUpdatingLocation]; [XChannel getBeaconsForLongitude:location.coordinate.longitude latitude:location.coordinate.latitude completion:^(NSArray* beacons, NSError *error){\r\n if (error == nil) {\r\n for (XCBeacon *beacon in beacons) {\r\n XCBeaconRegion *region = [[XCBeaconRegion alloc] initWithUUID:beacon.uuid];\r\n\r\n //region may be nil if o.uuid is invalid\r\n if (region) {\r\n [locationManager startMonitoringForRegion:region];\r\n }\r\n }\r\n } \r\n }];\r\n}\r\n\r\n- (void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region {\r\n if ([beacons count] > 0) {\r\n //Beacon array is ordered by closest to farthest\r\n CLBeacon *closestBeacon = beacons[0];\r\n\r\n [XChannel getDealsForBeacon:closestBeacon region:region completion: ^(NSArray *beaconDeals, NSError *error) {\r\n //Handle the deals returned }];\r\n }\r\n}