Iphone 我需要使用CLL定位
我需要从GPS上读取我的位置! 问题是我需要从方法上做出来Iphone 我需要使用CLL定位,iphone,cllocation,Iphone,Cllocation,我需要从GPS上读取我的位置! 问题是我需要从方法上做出来 - (void)locationUpdate:(CLLocation *)location; 所以。。。这就是我的工作方式: 在.h文件中,我有这个 CLLocation *mylocation; 在-viewDidLoad中 mylocation = [[CLLocation alloc] init]; locationController = [[CLController alloc] init]; locationContro
- (void)locationUpdate:(CLLocation *)location;
所以。。。这就是我的工作方式:
在.h文件中,我有这个
CLLocation *mylocation;
在-viewDidLoad中
mylocation = [[CLLocation alloc] init];
locationController = [[CLController alloc] init];
locationController.delegate = self;
[locationController.locationManager startUpdatingLocation];
然后
如果我使用NSLog(在mylocation上),我就能看到我的真实位置!
但是在另一种方法中(一个iAction连接一个UIButton),我想使用“mylocation”!
它不起作用了,我不知道为什么
如果,在这个方法中,我尝试这样做
NSLog(@"%@", mylocation);
控制台将报告以下内容:
<+0.00000000, +0.00000000> +/- 0.00m (speed -1.00 mps / course -1.00) @ 3/10/11 7:21:24 PM Central European Time
否则应用程序会崩溃 这一行:
mylocation = location;
正在将mylocation的内存指针设置为location manager返回的内存指针,该指针稍后将被释放
编辑:
mylocation = [[CLLocation alloc] initWithLatitude:location.coordinate.latitude longitude:location.coordinate.longitude];
这一行:
mylocation = location;
正在将mylocation的内存指针设置为location manager返回的内存指针,该指针稍后将被释放
编辑:
mylocation = [[CLLocation alloc] initWithLatitude:location.coordinate.latitude longitude:location.coordinate.longitude];
当然,在我的IBAction中,我也有
mylocation = [[LCLocation alloc] init];
所以得到的是零值,因为您总是用新创建的空白位置覆盖位置值-您不应该这样做
导致应用程序崩溃的问题是,在locationUpdate
方法中,您会得到自动释放的值,因此为了确保该值在该方法之外有效,您必须保留该值。(不要忘记释放旧值)。最简单的方法是为myLocation ivar创建一个应用程序并使用它访问ivar:
// .h file
@property (nonatomic, retain) CLLocation *myLocation;
// .m
@synthesize myLocation;
...
- (void)locationUpdate:(CLLocation *)location {
self.mylocation = location;
}
- (void) dealloc{
[myLocation release];
myLocation = nil;
...
[super dealloc];
}
当然,在我的IBAction中,我也有
mylocation = [[LCLocation alloc] init];
所以得到的是零值,因为您总是用新创建的空白位置覆盖位置值-您不应该这样做
导致应用程序崩溃的问题是,在locationUpdate
方法中,您会得到自动释放的值,因此为了确保该值在该方法之外有效,您必须保留该值。(不要忘记释放旧值)。最简单的方法是为myLocation ivar创建一个应用程序并使用它访问ivar:
// .h file
@property (nonatomic, retain) CLLocation *myLocation;
// .m
@synthesize myLocation;
...
- (void)locationUpdate:(CLLocation *)location {
self.mylocation = location;
}
- (void) dealloc{
[myLocation release];
myLocation = nil;
...
[super dealloc];
}
否:错误:左值必须作为赋值的左操作数(我认为我不能使用mylocation.coordinate.xxx)否:错误:左值必须作为赋值的左操作数(我认为我不能使用mylocation.coordinate.xxx)