iOS - 在单例中自定义类方法

时间:2015-04-01 10:07:33

标签: ios objective-c iphone ios6

我正在自定义我的单CLLocationManager类。

我有

@property (nonatomic, strong) CLLocationManager *sManager;

static MyLocationManager* sMyLocationManager=nil;

+(instancetype)sharedLocationManager{
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        sMyLocationManager = [[self alloc] init];

    });
    return sMyLocationManager;

}

我能够将自己的方法编写为

-(void)settingUserLocationManager{
    if(nil== sMyLocationManager.sManager){
        sMyLocationManager.sManager = [[CLLocationManager alloc] init];
}
-(void)onStartUpdatingUserLocation{
    [sMyLocationManager.sManager startUpdatingLocation];
    return;
}
-(void)onStopUpdatingUserLocation{
    [sMyLocationManager.sManager stopUpdatingLocation];
}

startUpdatingLocationstopUpdatingLocation是实例方法,这是我如何使用它们,而[CLLocationManager locationServicesEnabled] 是一种类方法。我不知道如何在我的单件类中使用它。

我尝试将其用作

+(BOOL)locationServicesEnabled {
    return [sMyLocationManager.sManager locationServicesEnabled];
}

但没有按预期工作。请添加一些想法。

2 个答案:

答案 0 :(得分:0)

使用

+(BOOL)locationServicesEnabled {
    return [[sMyLocationManager sharedLocationManager] locationServicesEnabled];
}

答案 1 :(得分:0)

由于您使用类包装CLLocationManager,因此类方法遵循相同的技术。

您的课程将包含类似

的方法
+ (BOOL)locationServicesEnabled
{
  return [CLLocationManager locationServicesEnabled];
}