我正在初次化访问监控
[self.locationManager startMonitoringVisits];
但这个函数永远不会被称为
- (void)locationManager:(CLLocationManager *)manager
didVisit:(CLVisit *)visit
如果我用
替换初始化调用[self.locationManager startMonitoringSignificantLocationChanges];
然后同一个代表开始接听此电话
- (void)locationManager:(CLLocationManager *)manager
didUpdateLocations:(NSArray *)locations
我正在使用iOS 8模拟器并使用不同的调试选项模拟位置,例如高速公路驾驶,骑自行车甚至尝试在等待几分钟后设置多个自定义位置。
我已经验证了位置设置,看起来正确。位置管理器保存在强大的参考中。
答案 0 :(得分:0)
此功能无法在模拟器中使用,因为它不仅采用“位置”监视(通过GPS,WiFi,蜂窝网络,接近传感器,蓝牙斑点等-大多数在模拟器中不存在),而且还采用许多启发式和逻辑,以确定什么是“访问”。
例如-您需要“移至”新位置。然后在该处“停留”一段时间(当然,您的位置读数始终会变化)。然后,您必须“离开”-离开该地点至少一段时间和距离,以创建“访问”。
这些事情不会在模拟器上发生,因此-在那里没有访问。
如果您访问Ray Wenderlich的站点,那里有一个教程演示了CLVisit的用法,并通过另一个API + GPTX资源文件(一种GPS位置和时间的路线)将一种不错的方法应用于“假”访问模拟器,并提供给模拟器)。