1

カスタムクラスは「didUpdateToLocation」CLLocationManagerDelegateメソッドを受け取る必要がありますが、次のコードを機能させることができないようです。

ヘッダーファイル。

#import <Foundation/Foundation.h>
#import <CoreLocation/CoreLocation.h>
#import <MapKit/MapKit.h>

@interface MyCurrentLocation : NSObject<MKAnnotation,CLLocationManagerDelegate,MKMapViewDelegate>
{
    CLLocationCoordinate2D coordinate;
}

@property (nonatomic, assign) CLLocationCoordinate2D coordinate;
@property (nonatomic, copy) CLLocationManager *locationManager;

-(MyCurrentLocation *)init;

@end

実装ファイル。

#import "MyCurrentLocation.h"

@implementation MyCurrentLocation

-(BLCurrentLocation *)init
{
    self = [super init];
    if (self) {
        _locationManager = [[CLLocationManager alloc] init];
        _locationManager.delegate = self;
        _locationManager.distanceFilter = kCLDistanceFilterNone;
        _locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters;
        [_locationManager startUpdatingLocation];
    }
    return self;
}

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
    NSLog(@"Did we receive a location?");
}
4

2 に答える 2

1

理由はわかりませんが、このデリゲートメソッドを実装して、位置情報サービスを登録できないかどうかを確認できるかもしれません。

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error{
    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Please make sure Location Service is ON" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; 
    [alertView show]; 
}
于 2012-09-22T05:59:54.477 に答える
1

エラーコールバックなど、他のデリゲートメソッドに応答する必要があります。また、CLLocationManagerの+(CLAuthorizationStatus)authorizationStatusクラスメソッドをチェックして、位置情報サービスを使用できるかどうかを判断します。

于 2012-09-22T06:02:22.127 に答える