我正在尝试创建一个帮助器类,以轻松获取其他任何类中电话的坐标。我遵循了一个教程,其中UIViewController实现了<CLLocationManagerDelegate>并有效。我试图用一个简单的NSObject进行相同的操作,但是后来不再调用我的委托(delegate)了。

这是我的代码:

PSCoordinates.h

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

@interface PSCoordinates : NSObject <CLLocationManagerDelegate>

@property (nonatomic, retain) CLLocationManager* locationManager;


@end

PSCoordinates.m
#import "PSCoordinates.h"

@implementation PSCoordinates

- (id) init {
    self = [super init];

    if (self) {
        self.locationManager = [[CLLocationManager alloc] init];
        if ([CLLocationManager locationServicesEnabled])
        {
            self.locationManager.delegate = self;
            self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
            self.locationManager.distanceFilter = 100.0f;
            NSLog(@"PSCoordinates init");
            [self.locationManager startUpdatingLocation];
        }
    }
    return self;
}

- (void)locationManager:(CLLocationManager *)manager
    didUpdateToLocation:(CLLocation *)newLocation
           fromLocation:(CLLocation *)oldLocation
{
    NSLog(@"Géolocalisation : %@",[newLocation description]);
}

- (void)locationManager:(CLLocationManager *)manager
       didFailWithError:(NSError *)error
{
    NSLog(@"Géolocalisation (erreur) : %@",[error description]);

}


@end

我通过打电话来称呼它
PSCoordinates * coordinates = [[PSCoordinates alloc] init];

按下按钮时。正如我看到的NSLog PSCoordinates init一样,该初始化正在工作。

我发现了其他人也遇到同样的问题,但没有一个答案能解决这个问题。

您的帮助将不胜感激。

最佳答案

在您的类(class)中将“PSCoordinates *坐标”设置为全局。它将起作用:)

关于ios - CLLocationManager不调用NSObject中的委托(delegate),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16421695/

10-10 22:11