Robię szybką aplikację na iOS, która integruje się z liczbą kroków użytkownika zgłaszaną przez aplikację Zdrowie. Mogę łatwo znaleźć liczbę kroków użytkownika w ciągu ostatniej godziny, stosując to jako moją orzecznika:HealthKit Swift robi dzisiejsze kroki
let anHourBeforeNow: NSDate = NSDate().dateByAddingTimeInterval(-60 * 60)
let predicate = HKQuery.predicateForSamplesWithStartDate(anHourBeforeNow, endDate: NSDate(), options: .None)
I mam resztę w dół, więc mogę z powodzeniem dostępu liczbę kroków użytkownika przez ostatnią godzinę. Ale w jaki sposób mogę uzyskać dostęp do danych kroku użytkownika od początku dnia, na przykład w aplikacji Zdrowie wyświetlanej w sekcji kroków?
Staram się zrobić coś takiego:
let date = NSDate()
let cal = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!
let newDate = cal.startOfDayForDate(date)
let predicate = HKQuery.predicateForSamplesWithStartDate(newDate, endDate: NSDate(), options: .None)
ale ten kod nie dostosować do strefy czasowej (tak to daje mi początek dnia w UTC, a nie początek dnia, w którym użytkownik jest) i ja też dostaję wysoce zawyżone liczby kroków (z nieznanych powodów).
Więc jak mogę liczyć krok użytkownika do bieżącego dnia, o tej samej liczbie kroków jak podano w zdrowie, tak jak na zdjęciu:
to może pomóc zobaczyć szybką odpowiedź http://stackoverflow.com/questions/29582462/get-total-step-count-for-every-date -in-healthkit –
Powinieneś podać kod zapytania i sposób obliczania liczby kroków, abyśmy mogli Ci pomóc w rozwiązaniu tego problemu. Możesz również śledzić moje odpowiedzi na http://stackoverflow.com/questions/36560367/health-handles-multiple-step-sources-differently-than-healthkit-swift po wskazówki, jeśli okaże się, że popełniasz ten sam błąd. – Allan
Co NSTimeZone.localTimeZone() zwraca w swojej aplikacji? – Allan