当前位置: 首页 > 面试题库 >

在Swift中实现CLLocationManagerDelegate方法

公良扬
2023-03-14
问题内容

我一直在尝试使它工作一段时间,而我来这里询问-如何在Swift中使用CLLocationManagerDelegate方法?我把它放在班上的第一位:

var locationManager = CLLocationManager()

我在我的viewDidLoad方法中添加了以下内容:

locationManager.delegate = self
locationManager.distanceFilter = kCLDistanceFilterNone
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.startUpdatingLocation()

而且我尝试使用这些委托方法无济于事:

func locationManager(manager: CLLocationManager!, didUpdateLocations locations: AnyObject[]!) {
    locationReceived = true
}

func locationManager(manager: CLLocationManager!, didFailWithError error: NSError!) {
    locationReceived = false
}

我也尝试过在函数前面使用@optional,但是Xcode会引发编译器错误。有任何想法吗?


问题答案:

如果尚未添加,则需要将NSLocationAlwaysUsageDescriptionNSLocationWhenInUseUsageDescription键添加到您的plist中,因为它们现在是必需的,

iOS8 +要求将这两个字符串之一设置为使用位置。您使用哪一种取决于您打算如何询问位置。

  • 使用NSLocationAlwaysUsageDescription对于要使用的设备的位置,即使应用没有打开并正在使用的应用程序。

  • 使用NSLocationWhenInUseUsageDescription对于要使用的设备的位置,只有当应用程序是开放的,在使用中的应用程序。

注意:
添加字符串时,在构建和运行之前,请先从设备上删除该应用,然后进行全新安装。看来,如果该应用在升级到iOS8之前被授权使用位置,它不会再次征求您的许可,也不会看到您设置了这些字符串。进行删除和全新安装即可解决此问题。

设置两个字符串中的任何一个都会提示安装/首次使用时出现以下弹出窗口:“即使不使用该应用程序,也允许“ ThisApp”访问您的位置”

这里有一个 截图 中的 的plist 文件。

在此处输入图片说明



 类似资料:
  • 问题内容: 我已经在Swift中实现了一个使用字典键的Set。我想实现一个addAll(sequence)方法,该方法在Set中的Elements上采用任何序列类型,但是出现一个没有意义的错误。这是我的代码 我在XCode 6.1和6.0.1中遇到此错误。 我想遵循Array的extend方法的语义,但是该类型签名甚至不为我编译。 我做错了什么,还是应该提交雷达? 编辑 :刚刚找到https://

  • 问题内容: 如何在 Swift 3.0中 实现方法混乱? 我已经阅读了有关nshipster的文章,但是在这段代码中 编译器给我一个错误 在Swift中不可用dispatch_once_t:而是使用延迟初始化的全局变量 问题答案: 首先,在Swift 3.0中不可用。您可以选择两种选择: 全局变量 静态财产,或 令人毛骨悚然的CocoaTouch类,例如UIViewController; 定制的S

  • 本文向大家介绍在Swift程序中实现手势识别的方法,包括了在Swift程序中实现手势识别的方法的使用技巧和注意事项,需要的朋友参考一下 在这次IOS应用开发教程中,我们打算实现手势识别。正如你所知道的,IOS支持大量的手势操作,它们能提供了很好的应用控制和出色用户体验。 让我们开始吧! 首先需要在Xcode中创建一个新的Single View Application: 然后点击Next,弹出的窗口

  • 问题内容: 我正在使用iOS的Google Maps API,并想使用标记聚类实用程序。我想出了如何显示聚簇标记,但是我想自定义标记。有人可以解释如何设置/更改每个标记或群集标记的图标和标题吗?示例代码将非常有帮助。 到目前为止,这就是我所拥有的。我不知道该如何处理renderClusters和更新函数。 问题答案: 在 Swift 4上 ,我找到了一种针对聚簇标记的干净解决方案,可以为聚簇使用自

  • 问题内容: 我最近开始使用Swift来构建OS X应用程序,我想知道如何实现拖放区域。 更具体地说,我构建了一个处理图像的应用程序,但目前,用户必须手动输入输入图像的路径或使用文件选择器(这很烦人)。我想改进我的应用程序,允许用户通过简单的拖放输入图像(我只需要检索表示图像路径的String即可)。 我怎样才能做到这一点? 问题答案: 这是我在应用程序中使用的示例。 如有必要,将一致性添加到子类声

  • 我正在尝试使用Flutter编写移动应用程序。不幸的是,我需要实现一个Flutter插件才能调用一些原生API。 Objective-C对我来说太陌生了,所以我真的更喜欢使用Swift(我也不太了解,但它离Kotlin很近,我觉得很熟悉)来创建插件。 我通过Flatter获得了插件框架设置,但现在我正在尝试实现方法处理函数: 我尝试使用的本机函数具有以下签名(使用gomobile生成): 但有几件