Ale*_*izi 34 xcode location core-location cllocationmanager
我需要找到我当前的位置CoreLocation
,我尝试了多种方法,但到目前为止我CLLocationManager
只返回0 ..(0.000.00.000
).
这是我的代码(更新后工作):
进口:
#import <CoreLocation/CoreLocation.h>
Run Code Online (Sandbox Code Playgroud)
宣布:
IBOutlet CLLocationManager *locationManager;
IBOutlet UILabel *latLabel;
IBOutlet UILabel *longLabel;
Run Code Online (Sandbox Code Playgroud)
功能:
- (void)getLocation { //Called when needed
latLabel.text = [NSString stringWithFormat:@"%f", locationManager.location.coordinate.latitude];
longLabel.text = [NSString stringWithFormat:@"%f", locationManager.location.coordinate.longitude];
}
- (void)viewDidLoad {
locationManager = [[CLLocationManager alloc] init];
locationManager.distanceFilter = kCLDistanceFilterNone; // whenever we move
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters; // 100 m
[locationManager startUpdatingLocation];
}
Run Code Online (Sandbox Code Playgroud)
Ale*_*izi 77
您可以使用以下方式找到您的位置CoreLocation
:
进口CoreLocation
:
#import <CoreLocation/CoreLocation.h>
Run Code Online (Sandbox Code Playgroud)
声明CLLocationManager
:
CLLocationManager *locationManager;
Run Code Online (Sandbox Code Playgroud)
初始化locationManager
in viewDidLoad
并创建一个函数,该函数可以return
将当前位置设置为NSString
:
- (NSString *)deviceLocation {
return [NSString stringWithFormat:@"latitude: %f longitude: %f", locationManager.location.coordinate.latitude, locationManager.location.coordinate.longitude];
}
- (void)viewDidLoad
{
locationManager = [[CLLocationManager alloc] init];
locationManager.distanceFilter = kCLDistanceFilterNone; // whenever we move
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters; // 100 m
[locationManager startUpdatingLocation];
}
Run Code Online (Sandbox Code Playgroud)
并调用该deviceLocation
函数将按预期返回位置:
NSLog(@"%@", [self deviceLocation]);
Run Code Online (Sandbox Code Playgroud)
这只是一个例子.在CLLocationManager
没有用户准备好的情况下进行初始化并不是一个好主意.当然,locationManager.location.coordinate
可以在初始化之后用于获取latitude
和随意.longitude
CLLocationManager
不要忘记CoreLocation.framework
在Build Phases选项卡(Targets->Build Phases->Link Binary
)下添加项目设置.
归档时间: |
|
查看次数: |
82785 次 |
最近记录: |