iOS - 自定义类的方法
问题描述:
我正在自定义我的单例类CLLocationManager
。iOS - 自定义类的方法
我
@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];
}
startUpdatingLocation
和stopUpdatingLocation
实例方法,这我如何使用它们,而[CLLocationManager locationServicesEnabled]
是一类方法。我不知道如何在我的单身课程中使用它。
我一直在使用它试图为
+(BOOL)locationServicesEnabled {
return [sMyLocationManager.sManager locationServicesEnabled];
}
,但无法按预期工作。请添加一些想法。
答
由于您使用的是类包裹CLLocationManager,类方法遵循相同的技术。
你的类将包含一个方法类似,
+ (BOOL)locationServicesEnabled
{
return [CLLocationManager locationServicesEnabled];
}
答
使用
+(BOOL)locationServicesEnabled {
return [[sMyLocationManager sharedLocationManager] locationServicesEnabled];
}
+0
添加,显示编译时错误 - 'MyLocationManager的可见@interface声明选择器sharedLocationManager' – iOS 2015-04-01 11:47:24
你尝试分配一个值sManager?我的意思是你用任何方法初始化它? – 2015-04-01 10:21:50
是的。我在视图控制器中这样做。 – iOS 2015-04-01 11:45:06