【swift】高德地图 Annotation 的小坑
来源:互联网 发布:人力资源管理系统java 编辑:程序博客网 时间:2024/05/07 08:33
我们都知道swift对?和!的要求十分严格,那这也导致了和Objective-C的一些不同,例如高德地图API中是这样定义的
- (MAAnnotationView *)mapView:(MAMapView *)mapView viewForAnnotation:(id<MAAnnotation>)annotation{ if ([annotation isKindOfClass:[MAPointAnnotation class]]) { static NSString *reuseIndetifier = @"annotationReuseIndetifier"; MAAnnotationView *annotationView = (MAAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:reuseIndetifier]; if (annotationView == nil) { annotationView = [[MAAnnotationView alloc] initWithAnnotation:annotationreuseIdentifier:reuseIndetifier]; } annotationView.image = [UIImage imageNamed:@"restaurant"]; //设置中心点偏移,使得标注底部中间点成为经纬度对应点 annotationView.centerOffset = CGPointMake(0, -18); return annotationView; } return nil;}
我们在swift里面写的时候,如果不是直接复制高德地图API中的代码的话,容易出现这个问题
那就是每次初始化的时候总是报nil的错误,具体错误出在哪里呢?
var annotationView: MAAnnotationView**?** = mapView.dequeueReusableAnnotationView(withIdentifier: pointReuseIndetifier) if annotationView == nil { annotationView = MAAnnotationView(annotation: annotation, reuseIdentifier: pointReuseIndetifier) }
var annotationView: MAAnnotationView?
中的?非常关键,如果没有的话,那就意味着这些都一定是非空的,下面的判断为nil也变得没有意义了。
这都是细节,但是需要仔细甄别。
阅读全文
0 0
- 【swift】高德地图 Annotation 的小坑
- Swift之高德地图的调用
- Swift-高德地图
- 高德地图的小demo
- 高德地图自定义annotation图标
- 高德地图小知识点
- 高德地图小实现
- Swift基础 - - 高德地图实践
- Swift使用高德地图SDK
- 高德地图的坑
- 高德地图(百度地图,Google地图)中自定义Annotation&CallOutView
- swift里采用cocoapods的方式集成高德地图遇到的问题
- iOS小技巧12-苹果地图和高德地图的关系
- 坑爹的高德地图
- 高德地图的无数坑
- 高德地图所遇到的坑
- 获取高德地图SDK制作小程序实时地图
- Swift基础 - - 高德地图实践(一)
- Python基础-定制类
- 排序的链表中删除重复的结点
- cssText
- 导入2.7版本python对应的lxml
- Python学习(16)--SciPy
- 【swift】高德地图 Annotation 的小坑
- HEVC帧内算法研究
- 交叉熵代价函数(作用及公式推导)
- 你真的了解Instant Run吗?
- 一个比较完整的Inno Setup 安装脚本
- tomcat高并发apr io模型
- 使用原生js封装的ajax(兼容jsonp)
- 8.字符串转换为整数
- 【Bzoj2141】排队