iOS 11.0中首先对地址数字进行弃用



刚刚开始使用ios11,将我的代码从ios10.3移至ios11中带来了以下挑战,而以下代码在ios11之前使用以下代码:

    CLGeocoder *GeoCoder = [[CLGeocoder alloc] init];
[GeoCoder reverseGeocodeLocation:_LocationManager.location completionHandler:^(NSArray *PlaceMarks, NSError *Error)
 {
     if (!Error)
     {
         MKPlacemark *PlaceMark_MK;
         if (PlaceMarks.count > 0)
         {
             MKPlacemark *PlaceMark = [PlaceMarks objectAtIndex:0];
             if (PlaceMark.location.coordinate.latitude != 0.0F && PlaceMark.location.coordinate.longitude != 0.0F)
             {
                 PlaceMark_MK = [[MKPlacemark alloc] initWithCoordinate:PlaceMark.location.coordinate addressDictionary:PlaceMark.addressDictionary];

....

现在,使用ios11,它在抱怨placemark.addressdictionary,而everseptictionary被弃用。

adverseDictionary'已弃用:iOS 11.0中首先弃用 - 使用@properties

我试图这样做,但是不幸的是,InitWithCoorceartion函数无论如何都需要地址dictionary。

我想知道是否有人遇到了同样的问题,我知道这是非常新的(昨天刚刚问世)。

我想我还是发现了答案:

我替换了以下行:

PlaceMark_MK = [[MKPlacemark alloc] initWithCoordinate:PlaceMark.location.coordinate addressDictionary:PlaceMark.addressDictionary];

使用以下行:

PlaceMark_MK = [[MKPlacemark alloc] initWithCoordinate:PlaceMark.location.coordinate postalAddress:PlaceMark.postalAddress];

这似乎可以解决这个问题。

您需要通过

的属性访问
    var placemark = placemarks[0] as? CLPlacemark
    var address = "(placemark?.thoroughfare ?? ""), (placemark?.locality ?? ""), (placemark?.subLocality ?? ""), (placemark?.administrativeArea ?? ""), (placemark?.postalCode ?? ""), (placemark?.country ?? "")"
        print("(address)")

相关内容

  • 没有找到相关文章

最新更新