美文网首页swiftSwift Swift编程
Swift-定位,编码/反编码功能的封装

Swift-定位,编码/反编码功能的封装

作者: Mccc_ | 来源:发表于2018-07-30 20:01 被阅读27次

    GitHub地址 demo中有详细的使用

    一. 定位的使用

    1. 懒加载声明对象
        // 使用的时候一定要声明成为持久变量,否则会提前销毁,不执行MCPositioning类里面的定位的代理方法
        lazy var positioning: MCPositioning = {
            let p = MCPositioning()
            return p
        }()
    
    1. 开启定位
       // 一定不要写在懒加载中,不然只能定位一次
       positioning.startPositioning(self)
    
    1. 获取定位的经纬度
      positioning.clousre = { (latitude,longitude) in
      let oneStr = "定位的纬度: \(latitude)  ----经度: \(longitude)"
            }
    
    1. 在设置页面重新开启了定位定位/重新进入前台 如何重新定位
    // 监听重新变成活跃状态的通知
      NotificationCenter.default.addObserver(self, selector: #selector(didBecomeActive), name: notificationName, object: nil)
    
    
      @objc func didBecomeActive() {
            // 重新开启定位
            // 重新执行2和3步骤
      }
    
    
    1. 说明
    • 封装的MCPositioning类里面自动处理了没开启或者定位不可用的情况。

    二. 编码 / 反编码

    1. 懒加载声明对象
        // 使用的时候一定要声明成为持久变量,否则会提前销毁,不执行couslre
        lazy var geccoder: MCGeocoder = {
            let g = MCGeocoder()
            return g
        }()
    
    1. 编码
       weakSelf!.geccoder.MCeverseGeocode(latitude: latitude, longitude: longitude, success: { (addressInfo) in
                   
            let twoStr = "反编码出来的地址:" + addressInfo.addressLines
       }, failure: { (error) in  })
    
    1. 反编码
      weakSelf!.geccoder.MCLocationEncode(address: addressInfo.addressLines, success: { (coor) in
           let threeStr = "根据地址编码出来的经纬度: \(coor.latitude)----\(coor.longitude)"
      },failure: {(error) in  })
    

    相关文章

      网友评论

        本文标题:Swift-定位,编码/反编码功能的封装

        本文链接:https://www.haomeiwen.com/subject/vshqvftx.html