我正在开发一个提醒应用程序,我已在该应用程序中启用地理围栏。 Region Radius是100m,当用户进入该位置时,DIdEnterRegion不会被调用,即使我离开该位置,didExitRegion也不会被调用。只有startMonitoringRegion才会被调用。这是代码
{{1}}
}
答案 0 :(得分:1)
这是ios 8的问题将此添加到您的代码
if (IS_OS_8_OR_LATER)
{
[locationmanager requestWhenInUseAuthorization];
[locationmanager requestAlwaysAuthorization];
}
和info.plist:
<key>NSLocationUsageDescription</key>
<string>I need location</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>I need location</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>I need location</string>
答案 1 :(得分:0)
如果[locationmanager requestAlwaysAuthorization]也不起作用,那么点击xCode项目,转到目标设置,然后在Capablities选项卡中点击后台模式并启用位置更新。
在上面的代码中,你还没有为CLRegion创建实例,你应该调用startMonitoringforRegion方法来监视一个region.Below就是一个例子。试试这个:
CLLocationCoordinate2D region = CLLocationCoordinate2DMake(12.9877899, 13.88999);
CLCircularRegion* regionToMonitor = [[CLCircularRegion alloc] initWithCenter:region radius:500 identifier:@"address"];
[self.locationManager startMonitoringForRegion:regionToMonitor];
答案 2 :(得分:0)
添加此代码
- (void) locationManager:(CLLocationManager *)manager didStartMonitoringForRegion:(CLRegion *)region
{
[self.locationManager requestStateForRegion:yourregion];
}