用途
该技能用于在实现位置服务、地图、地理围栏,或调试位置与 MapKit 问题时提供指引。资料明确要求任何涉及 Core Location 或 MapKit 的工作都应使用此技能。
主要内容结构
技能按主题划分为多个子文档,用户可根据任务类型查阅:
- Core Location 模式(skills/core-location.md):授权策略(When In Use 与 Always 的选择)、监控方式(连续、显著变化、CLMonitor)、精度选择、后台定位配置,以及带时间成本的常见反模式。
- Core Location API 参考(skills/core-location-ref.md):CLLocationUpdate AsyncSequence(iOS 17+)、CLMonitor 基于条件的地理围栏(iOS 17+)、CLServiceSession 声明式授权(iOS 18+)、授权 API 模式、后台模式配置、罗盘朝向与 headingBody。
- Core Location 诊断(skills/core-location-diag.md):定位更新不到达、后台定位失效、授权始终被拒、地理围栏事件不触发、定位精度异常差等问题的排查。
- MapKit 模式(skills/mapkit.md):SwiftUI Map 与 MKMapView 的决策树、标注模式(Marker、自定义 Annotation)、搜索(MKLocalSearch、自动补全)、路线与导航,以及反模式(在视图 body 中放置标注、无视图复用、setRegion 循环)。
- MapKit API 参考(skills/mapkit-ref.md):SwiftUI Map API(MapCameraPosition、内容构建器、控件)、MKMapView 委托模式、MKLocalSearch、MKDirections、Look Around、MKMapSnapshotter、聚类配置。
- MapKit 诊断(skills/mapkit-diag.md):标注不显示、地图区域跳动/循环、聚类不生效、搜索无结果、覆盖物渲染失败等问题的排查。
使用方式
资料提供了决策树与快速参考表,按症状或任务指向对应子文档。例如:授权策略、监控方式、精度选择查阅 core-location.md;需要具体 API 语法查阅对应的 -ref 文档;出现问题查阅对应的 -diag 文档;在 SwiftUI Map 与 MKMapView 之间做选择、添加标注、搜索、路线查阅 mapkit.md。
冲突处理
资料说明了与其他技能的边界:定位耗电时优先尝试定位技能(精度过高或连续更新是首要原因),仅在定位设置已正确后再使用性能技能;后台定位配置使用本技能,周期性位置处理任务调度使用集成技能;获取位置更新和地理围栏使用本技能,持久化位置历史与 CloudKit 同步使用数据技能;模拟器中的位置权限问题使用本技能,模拟器 GPS 模拟使用构建技能。
适用场景
- 实现位置服务、地图、地理围栏
- 调试定位与 MapKit 相关问题
- 请求位置权限、实现地理围栏、为地图添加搜索
- 定位耗电问题排查
限制
资料未提供具体的安装命令、价格、支持的平台版本范围等事实,这些内容暂未提供。