2015-04-01 49 views
0

我正在自定义我的单例类CLLocationManageriOS - 自定义类的方法

@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]; 
} 

,但无法按预期工作。请添加一些想法。

+0

你尝试分配一个值sManager?我的意思是你用任何方法初始化它? – 2015-04-01 10:21:50

+0

是的。我在视图控制器中这样做。 – iOS 2015-04-01 11:45:06

回答

0

由于您使用的是类包裹CLLocationManager,类方法遵循相同的技术。

你的类将包含一个方法类似,

+ (BOOL)locationServicesEnabled 
{ 
    return [CLLocationManager locationServicesEnabled]; 
} 
0

使用

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

添加,显示编译时错误 - 'MyLocationManager的可见@interface声明选择器sharedLocationManager' – iOS 2015-04-01 11:47:24