2014-12-16 20 views
6

Tôi đang cố gắng thực hiện truy vấn bộ nhớ cache pedometer trên iPhone 6 với iOS 8.1.2, tôi đang sử dụng mục tiêu-c, tôi đã nhập khung công tác CoreMotion và đưa nó vào dự án mã trông như thế nàyCMPedometer queryPedometerDataFromDate trả về lỗi 103

NSDate *startDate = [[NSDate date] dateByAddingTimeInterval:-60*60*12]; 
NSDate *endDate = [NSDate date]; 
CMPedometer *pedo = [[CMPedometer alloc]init]; 
[pedo queryPedometerDataFromDate:startDate toDate:endDate withHandler:^(CMPedometerData *pedometerData, NSError *error) 
{ 
    if (error) 
    { 
     NSLog(@"error: %@", error); 
    } 
}]; 

này mang lại cho tôi những lỗi: lỗi miền = mã CMErrorDomain = 103

Nếu tôi làm chính xác cùng "các hoạt động không thể hoàn tất (CMErrorDomain lỗi 103.)." điều trong Swift như thế này

var dateString = "2014-12-15" 
    var dateFormatter = NSDateFormatter() 
    dateFormatter.dateFormat = "YYYY-MM-DD" 

    var startDate = dateFormatter.dateFromString(dateString) 
    var endDate = NSDate() 

    pedometer.queryPedometerDataFromDate(startDate, toDate: endDate){ 
     (data, error) -> Void in 
     if error != nil 
     { 
      println("There was an error requesting data from the pedometer: \(error)") 
     } 
     else 
     { 
      println(data) 
     } 
    } 

Tôi nhận được dữ liệu pedometer và không có lỗi.

Trong cả hai trường hợp, tôi chấp nhận cửa sổ bật lên yêu cầu tôi chấp nhận hoạt động thể chất theo dõi. Tôi đã kiểm tra kỹ rằng ứng dụng đã đọc quyền truy cập vào dữ liệu hoạt động thể chất trong cài đặt ẩn danh.

Có ai có thể giải thích những gì tôi đang làm sai không?

Trả lời

10

Bạn nên giữ biến CMPedometer làm thuộc tính của lớp bạn, không phải là biến cục bộ. Và sau đó nó sẽ hoạt động.

+0

Hey shadox, đó là câu trả lời đúng. Tôi thực sự phát hiện ra một vài ngày trước, nhưng đã quá thoát nên quên cập nhật câu hỏi của tôi. Nhưng cảm ơn bạn đã trả lời. – Thomas

Các vấn đề liên quan