调用CMPedometer方法时的CMErrorDomain

时间:2016-02-03 21:49:56

标签: ios objective-c

我正在尝试从CMPedometer访问数据。我有一个名为StepService的类,它具有以下属性

@property (strong, nonatomic)  CMPedometer *pedometer;

哪个有以下getter

-(CMPedometer*) pedometer{
    if(!_pedometer){
        _pedometer = [[CMPedometer alloc] init];
    }
    return _pedometer;
}

我正在使用以下代码来获取步骤:

-(void) storeData {
    [self.pedometer queryPedometerDataFromDate:[[NSCalendar currentCalendar] startOfDayForDate:[NSDate date]]
                                        toDate:[NSDate date]
                                   withHandler:^(CMPedometerData *pedometerData, NSError *err){
                                       if (err) {
                                           NSLog(@"Error getting pedometer data: %@", err);
                                       } else {
                                           ...
                                       }
                                   }];
}

当我这样调用上面的代码时:

StepService *stepService = [[StepService alloc] init];
[stepService storeData];

我获得err

的以下值
  

错误域= CMErrorDomain代码= 103“(null)”

调试显示pedometer不为空但pedometerData为空。这里发生了什么,我该如何解决这个错误?

1 个答案:

答案 0 :(得分:0)

按照Larme的建议,我在我的ViewController中创建了一个属性并合成它,如下所示:

@interface MainViewController(){
@property (strong, nonatomic) StepService *stepService;
@end

@implementation MainViewController
@synthesize stepService

然后我能够创建并调用包含queryPedometerDataFromDate的方法,如下所示:

stepService = [[StepService alloc] init];
[stepService storeData];