0xS*_*ina 3 cocoa-touch objective-c cllocationmanager ios
我CLLocationManager
在设备上使用,并且没有调用委托方法.这是我的代码(我可以看到该类也没有被解除分配):
#import <Foundation/Foundation.h>
#import <CoreLocation/CoreLocation.h>
@interface CurrentLocation : NSObject <CLLocationManagerDelegate> {
CLLocationManager *locationManager;
}
@property (nonatomic, retain) CLLocationManager *locationManager;
@end
#import "CurrentLocation.h"
#import "SBJson.h"
@implementation CurrentLocation
@synthesize locationManager;
- (id)init
{
self = [super init];
if (self) {
NSLog(@"Initialized");
locationManager = [[[CLLocationManager alloc] init] autorelease];
locationManager.delegate = self;
[locationManager startUpdatingLocation];
BOOL enable = [CLLocationManager locationServicesEnabled];
NSLog(@"%@", enable? @"Enabled" : @"Not Enabled");
}
return self;
}
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation {
NSLog(@"A");
NSString *stringURL = [NSString stringWithFormat:@"http://maps.googleapis.com/maps/api/geocode/json?latlng=%f,%f&sensor=true", newLocation.coordinate.latitude, newLocation.coordinate.longitude];
NSLog(@"%@", stringURL);
NSURL *url = [NSURL URLWithString:stringURL];
NSData *data = [NSURLConnection sendSynchronousRequest:[NSURLRequest requestWithURL:url] returningResponse:nil error:nil];
SBJsonParser *parser = [[SBJsonParser alloc] init];
NSDictionary *dict = [parser objectWithData:data];
NSLog(@"%@", dict);
}
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error {
NSLog(@"B");
}
- (void)dealloc {
NSLog(@"Dealloc called");
[super dealloc];
[locationManager release];
}
@end
Run Code Online (Sandbox Code Playgroud)
在日志中,我看到:
2011-10-02 19:49:04.095 DixieMatTracker[1404:707] Initialized
2011-10-02 19:49:04.109 DixieMatTracker[1404:707] Enabled
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?谢谢
你使用的是locationManager
ivar,而不是财产; 这意味着它CLLocationManager
不会被保留,并且会在您自动释放它时释放.用途self.locationManager
:
self.locationManager = [[[CLLocationManager alloc] init] autorelease];
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5291 次 |
最近记录: |