2014-12-16 11 views
6

Sto provando a eseguire una query sulla cache del pedometro su un iPhone 6 con iOS 8.1.2, sto usando l'obiettivo-c, ho importato il framework CoreMotion e l'ho incluso nel progetto codice è simileCMPedometer queryPedometerDataFromDate restituisce errore 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); 
    } 
}]; 

questo mi dà l'errore: errore di dominio = codice CMErrorDomain = 103

Se faccio la stessa identica "l'operazione non può essere completata (errore CMErrorDomain 103.)." cosa in Swift come questo

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) 
     } 
    } 

Ottengo i dati del pedometro e nessun errore.

In entrambi i casi accetto il popup dicendomi di accettare l'attività fisica di tracciamento. Ho verificato due volte che l'app ha accesso in lettura ai dati relativi all'attività fisica in impostazioni di anonimato.

Qualcuno può spiegare cosa sto facendo male?

risposta

10

È necessario conservare le variabili CMPedometer come proprietà della classe dell'utente, non come variabili locali. E poi funzionerà.

+0

Hey shadox, questa è la risposta corretta. L'ho scoperto un paio di giorni fa, ma ero così eccitato che ho dimenticato di aggiornare la mia domanda. Ma grazie per la risposta. – Thomas

Problemi correlati