草庐IT

CLLocationManager

全部标签

ios - 位置管理器 stopMonitoringForRegion 不工作

我目前正在开发的一个应用程序在后台运行时会根据用户的当前位置设置区域监控。当应用程序再次激活时,我试图停止对该区域的监控,但它似乎在大部分时间间歇性地工作,导致它无法按预期运行。当应用程序在后台运行时,我开始监视该区域,当我记录详细信息时它工作正常:-(void)locationManager:(CLLocationManager*)managerdidStartMonitoringForRegion:(CLRegion*)region{DDLogInfo(@"CREATEDREGION:%@",region.identifier);}这导致以下日志:“创建的区域:regionFor:

ios - 我的简单 map 项目无法在模拟器中获取和显示我的位置

我正在使用XCodev7.2.1,Simulatorv9.2。我有一个显示map的UIViewController并且应该获取我的位置并将其显示在map上:importUIKitimportMapKitclassLocationVC:UIViewController,MKMapViewDelegate{@IBOutletweakvarmap:MKMapView!letlocationManager=CLLocationManager()overridefuncviewDidLoad(){super.viewDidLoad()map.delegate=self}overridefuncv

iphone - iOS模拟器和XCode来模拟Compass?

我知道现在有一种模拟位置的方法,但是有没有一种方法可以模拟罗盘值?。 最佳答案 Compass不在模拟器支持的硬件交互列表中,CLLocationManagerheadingAvailable报告它在模拟器上不可用。此外,在本文档中:http://developer.apple.com/library/ios/#documentation/CoreLocation/Reference/CLLocationManager_Class/CLLocationManager/CLLocationManager.htmlSomelocatio

ios - 如何阐明其在位置模态中的使用目的?

在我的应用程序中,我在mapView上显示用户位置所以我实现了CLLocationManager。我遇到了BinaryRejected错误.4.5-Appsusingbackgroundlocationservicesmustprovideareasonthatclarifiesthepurposeoftheuse,usingmechanismsdescribedintheHumanInterfaceGuidelines4.5细节您的应用使用后台位置服务,但未按照iOS人机界面指南的要求在位置模式提醒中阐明其使用目的。我们已附上屏幕截图供您引用。后续步骤请重新配置代码中的UIAlert

iphone - 位置管理器是在调度队列上创建的

这条消息是什么意思?注意,位置管理器(0xe86bdf0)是在主线程以外的线程上执行的调度队列上创建的。开发人员有责任确保在分配位置管理器对象的线程上运行运行循环。特别是,不支持在任意调度队列(未附加到主队列)中创建位置管理器,这将导致无法接收到回调。 最佳答案 您必须在具有事件运行循环的线程(例如主线程)上创建CLLocationManager。您不应该在后台线程上创建它。参见CLLocationManagerClassReference了解更多信息:(Configurationofyourlocationmanagerobjec

swift - 当应用关闭几秒钟后,表示应用正在后台使用位置信息的蓝色横幅消失

我的应用程序会在用户使用应用程序时使用用户位置。当他们关闭应用程序回家时,会弹出蓝色横幅,上面写着“...正在使用您的位置”。它会在几秒钟后消失,但这很烦人,我认为用户不会喜欢它。应用程序关闭后如何停止位置管理器?不确定将它放在委托(delegate)中的什么位置,甚至不知道如何编写它。添加了视觉表示。 最佳答案 您可能在Info.plist中将位置访问作为后台模式。您应该将其更改为仅在使用时。 关于swift-当应用关闭几秒钟后,表示应用正在后台使用位置信息的蓝色横幅消失,我们在Sta

ios - 沿着最后更新的 GPS 坐标平滑地移动和旋转 GMSMarker Swift iOS

我正在使用GMSMapView。所以我添加了自定义GMSMarker并设置图像(例如自行车图像)并在用户开始移动时为该标记设置动画并在locationManager中更改标记的角度。目前我只是在更新GMSMarker的位置属性。但是它给了GMSMarker跳跃效果。而不是这个,我想移动和旋转GMSMarker平滑/正确地到GMSMapView中。我如何在Swift中实现这一点?谢谢。(void)updateLocationoordinates(CLLocationCoordinate2D)coordinates{if(marker==nil){marker=[GMSMarkermark

ios - swift - didUpdateLocations 未被调用

我正在开发一款需要获取用户当前坐标的应用。我正计划通过CLLocationManager的didUpdateLocations方法来执行此操作。由于某种原因,didUpdateLocations没有被执行。但是,似乎已成功调用locationManager.startUpdatingLocation()。我在这个网站上看到的其他可能的解决方案都不适合我。我已经将NSLocationAlwaysUsage添加到info.plist。这是我的全部代码:importUIKitimportMapKitimportCoreLocationvarregion:MKCoordinateRegion!

ios - didUpdateLocations 每次当 viewWillAppear 发生重大位置变化时调用

我在同一个UIViewController中使用CLLocationManager和MKMapView。我只想在重要位置发生变化时调用API。importUIKitimportCoreLocationimportMapKitclassViewController:UIViewController,CLLocationManagerDelegate,MKMapViewDelegate{@IBOutletweakvarmapView:MKMapView!varlocationManager=CLLocationManager()overridefuncviewDidLoad(){super

swift - 在第一次加载 requestAuthorization 之后,viewDidLoad 的其余部分未执行,下一行跳转到委托(delegate)函数 (swift 3)

我的应用似乎在每次使用时都运行良好,但第一次除外。我要求用户授权,并且我在plist中有适当的键,但是在请求授权的行之后的其余viewDidLoad不执行。我在下面附加了断点,断点2没有在第一次使用该应用程序时命中。我很确定在获得授权后它会跳转到扩展中的funclocationManager。我可以等到最后才请求授权,直到一切都准备就绪,但不确定这是最好的还是唯一的出路。谢谢,classMapController:UIViewController,GMSMapViewDelegate{varlocationManager=CLLocationManager()varcurrentLoc