Core Location (Core Location)
«مکان یابی (Location)» یعنی فهمیدن جای کاربر با GPS و شبکه. با Core Location اجازه بگیر، سپس مختصات بخوان. حتماً متن دلیل دسترسی را در Info.plist بنویس. برای راهنمای مجوزها، صفحه مکان یابی را هم ببین.
مجوز و حریم خصوصی
در Info.plist کلیدهای لازم را اضافه کن. مثلاً NSLocationWhenInUseUsageDescription یا NSLocationAlwaysAndWhenInUseUsageDescription. سپس در زمان اجرا، اجازه کاربر را درخواست کن.
- کلید مناسب را در Info.plist بنویس.
- اجازه کاربر را درخواست کن.
- هنگام عدم نیاز، دریافت را متوقف کن.
دریافت به روزرسانی مکان
با CLLocationManager می توانی یک بار یا پیوسته مکان بگیری. دقت مناسب را انتخاب کن تا باتری کم مصرف شود.
import CoreLocation
class LocationDelegate: NSObject, CLLocationManagerDelegate {
let manager: CLLocationManager = CLLocationManager()
override init() {
super.init()
manager.delegate = self
manager.requestWhenInUseAuthorization()
manager.startUpdatingLocation()
}
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
let last: CLLocationCoordinate2D = locations.last?.coordinate ?? .init()
print("Last: \(last)")
}
}
نکته: برای صرفه جویی در انرژی، دقت را منطقی نگه دار. وقتی نیاز نداریم، به روزرسانی را متوقف کن. همچنین می توانی از «significant-change» یا «visit» برای مصرف کمتر استفاده کنی.
جمع بندی سریع
- کلیدهای Info.plist را حتماً اضافه کن.
- اول اجازه بگیر، بعد مکان بخوان.
- دقت را متناسب انتخاب کن.
- به روزرسانی اضافی را متوقف کن.