首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >addressDictionary在iOS 11.0中首先被弃用

addressDictionary在iOS 11.0中首先被弃用
EN

Stack Overflow用户
提问于 2017-09-22 21:24:24
回答 2查看 3K关注 0票数 2

刚刚开始使用IOS11,将我的代码从IOS10.3迁移到IOS11导致了以下挑战,而下面的代码用于在IOS11之前工作:

代码语言:javascript
复制
    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,而addressDictionary则是不可取的。

不建议使用addressDictionary‘:首先在iOS 11.0中不推荐使用@properties

我试过这样做,但不幸的是,InitWithCoordinate函数仍然需要AddressDictionary。

我想知道是否有人有同样的问题,我知道这是非常新的(IOS11昨天刚刚发布)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-22 21:28:11

我想我还是找到了答案:

我替换了以下一行:

代码语言:javascript
复制
PlaceMark_MK = [[MKPlacemark alloc] initWithCoordinate:PlaceMark.location.coordinate addressDictionary:PlaceMark.addressDictionary];

行如下:

代码语言:javascript
复制
PlaceMark_MK = [[MKPlacemark alloc] initWithCoordinate:PlaceMark.location.coordinate postalAddress:PlaceMark.postalAddress];

这似乎解决了这个问题。

票数 2
EN

Stack Overflow用户

发布于 2018-10-22 11:32:14

您需要按以下方式访问属性

代码语言:javascript
复制
    var placemark = placemarks[0] as? CLPlacemark
    var address = "\(placemark?.thoroughfare ?? ""), \(placemark?.locality ?? ""), \(placemark?.subLocality ?? ""), \(placemark?.administrativeArea ?? ""), \(placemark?.postalCode ?? ""), \(placemark?.country ?? "")"
        print("\(address)")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46373395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档