位置库,易于获取位置。支持反向地理编码。
步骤1:添加通知观察者
[NSNotificationCenter.defaultCenter addObserver:self
selector:@selector(_updatedLocation:)
name:LKLocationManagerDidUpdateLocationNotification
object:nil];
[NSNotificationCenter.defaultCenter addObserver:self
selector:@selector(_finishedLocation:)
name:LKLocationManagerDidFinishLocationNotification
object:nil];
步骤2:实现通知处理程序
- (void)_updatedLocation:(NSNotification*)notification
{
LKLocationManager* manager = notification.object;
CLLocation* location = manager.location;
:
}
- (void)_finishedLocation:(NSNotification*)notification
{
LKLocationManager* manager = notification.object;
CLLocation* location = manager.location;
:
}
步骤3:开始更新位置
[LKLocationManager.sharedManager startUpdate];
当精度足够时,会自动停止获取位置。使用 stoppingAccuracy 属性来确定停止(默认 100.0)。
您也可以手动停止
[LKLocationManager.sharedManager stopUpdate];
状态
typedef NS_ENUM(NSInteger, LKLocationManagerStatus) {
LKLocationManagerStatusIdle = 0,
LKLocationManagerStatusLocationUpdating,
LKLocationManagerStatusLocationUpdated,
LKLocationManagerStatusLocationCanceled,
LKLocationManagerStatusLocationFailed
};
[LKReverseGeocoder reverseGeocodeLocation:manager.location
completionHandler:^(NSArray *placemarks,
NSString *addressString,
NSDictionary *addressDictionary,
NSError *error) {
self.place.text = addressString;
:
}];
'addressString' 已本地化。
请参阅示例项目。
Hiroshi Hashiguchi, [email protected]
LKArchiver 是在 MIT 许可下可用的。有关更多信息,请参阅 LICENSE 文件。