- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
对于 Xcode 9.3,我有一个新的警告。
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
此方法现已弃用。“实现弃用的方法”。我有你的解决方案吗?谢谢
最佳答案
Apple Documentation on locationManager(_:didUpdateTo:from:)
会告诉你使用 locationManager(_:didUpdateLocations:)
因此对于新委托(delegate) locationManager(_:didUpdateLocations:)
,locations
对象的文档说明:
locations
An array of CLLocation objects containing the location data. This array always contains at least one object representing the current location. If updates were deferred or if multiple locations arrived before they could be delivered, the array may contain additional entries. The objects in the array are organized in the order in which they occurred. Therefore, the most recent location update is at the end of the array.
基本上这意味着数组中至少有 1 个位置,如果超过 1 个,则:
locations
数组中的最后一个对象将是新/当前位置locations
数组中的倒数第二个对象将是旧位置示例(Swift 4+):
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
let newLocation = locations.last
let oldLocation: CLLocation?
if locations.count > 1 {
oldLocation = locations[locations.count - 2]
}
//...
}
示例( Objective-C ):
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations {
CLLocation *newLocation = locations.lastObject;
CLLocation *oldLocation;
if (locations.count > 1) {
oldLocation = locations[locations.count - 2];
}
//...
}
引用:
关于objective-c - 实现弃用的方法 - CLLocation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49688428/
这个问题在这里已经有了答案: How to convert CLLocation to string in Xcode (3 个答案) 关闭 6 年前。 我有一个包含 String 格式的位置的变量
我正在尝试将位置检测添加到应用程序中,并且我已经弄明白了大部分内容。但是我在使用 reverseGeocodeLocation 方法时遇到了问题。我收到错误 cannot convert value
我尝试在 map View 上显示用户当前位置,但在位置管理器功能的第一行出现错误 这是我的代码 import UIKit import MapKit class FirstViewControlle
我的 CLLocation 遇到问题。 我想知道两个坐标之间的距离,以便将其显示在 tableView 中位置标题旁边: static NSString *CellIdentifier = @
如何在后台保持 CLLocation 更新。我相信您需要注册应用程序才能在应用程序委托(delegate)中执行此操作,但我在任何地方都找不到对此的引用? 最佳答案 以下是相关文档的链接: https
我在CLLocation distanceFromLocation上遇到了一些问题。我下面的代码经过格式化,可以帮助调试,显式分配两个新位置,等等。无论哪种方式,两个几乎相同的位置都会产生巨大的差距,
据我所知,最大值和最小值是: 纬度: [-90, 90] 经度: [-180, 180] CLLocation 仍然接受超出这些限制的值,例如: [[CLLocation alloc] initWi
我是 Swift 的新手(以及这个网站,如果我做错了什么,很抱歉),我正在尝试制作一个正在运行的应用程序来跟踪用户的位置。虽然我用来跟踪距离的函数有效,但它并不是从 0 开始。当我点击开始按钮时,距离
在 iPhone 6+、IOS 11.4、Xcode 9.4.1 上,CLLocation 时间戳始终为零。 纬度:30.598748经度:-97.820877海拔高度:308.921658H准确度:
我试图在内存中保存 self.mapView.userLocation.location在CLLocation属性,但在我将值分配给属性并检查属性的值后,我得到了这个: +/- 0.00m (spe
我已经设法使用 GLGeocoder geocodeAddressString 获取了 2 个城市的坐标 从名称中检索到这 2 个城市的坐标后,我想计算它们之间的距离。但是我面临一个问题,因为 CLL
我正在尝试设置一个自定义类的 CLLocation 属性(名为 objectLocation),使用下面的代码,从我的主 ViewController 调用。不幸的是,我在“注释”行收到一条错误消息,
更新到 iOS 8 后我遇到了很多麻烦。以下代码在我更新到 iOS 和 Xcode 6 之前有效。代码是在 viewDidLoad 中编写的: self.locationManager.delegat
我的类 ViewController 中有这段代码: CLLocationManager *locationManager; - (void)viewDidLoad { [super view
我的代码中有一个奇怪的问题。我想调用 [locationManager startUpdatingLocation]; 并且当更新完成时 - (void)locationManager:(CLLoca
所以我不知道发生了什么。我的代码运行得非常好,然后我在 Storyboard中工作了一会儿,突然我开始收到错误消息,即我的 CLLocation 在解包时始终为 nil。我做了我能想到的或在网上阅读的
info.plist 文件: NSLocationWhenInUseUsageDescription This project would like to know your location NSL
我想在应用程序启动之间保留 2 个 CLLocation。这是我希望在两次启动之间存储在内存中的唯一数据。我该怎么做呢? CLLocation 是否有 writetofile 或将其存储在 cored
这是我的位置管理器委托(delegate)代码。 当我们使用汽车移动时,它不会给出速度,所以至少速度值应该改变。 它总是给出常量值 -1.00。 -(void)locationManager:(CLL
我想使用可靠的位置,即使是在旧的 iPhone 上。然而,许多读数(尤其是来自手机信号塔的读数)都太不准确了。我想。 当我绘制我的位置 + 精度半径(或查看谷歌地图应用程序)时,我注意到估计圆的中心通
我是一名优秀的程序员,十分优秀!