【发布时间】:2016-04-11 21:29:11
【问题描述】:
我正在制作一个快速的 iOS 应用程序,该应用程序与 Health 应用程序报告的用户步数相集成。我可以很容易地找到用户在过去一小时内的步数,以此作为我的谓词:
let anHourBeforeNow: NSDate = NSDate().dateByAddingTimeInterval(-60 * 60)
let predicate = HKQuery.predicateForSamplesWithStartDate(anHourBeforeNow, endDate: NSDate(), options: .None)
剩下的我已经准备好了,所以我可以成功地访问用户最后一小时的步数。 但我如何才能访问用户从一天开始以来的步数数据,例如步数部分中显示的健康应用程序?
我正在尝试做这样的事情:
let date = NSDate()
let cal = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!
let newDate = cal.startOfDayForDate(date)
let predicate = HKQuery.predicateForSamplesWithStartDate(newDate, endDate: NSDate(), options: .None)
但是这段代码没有针对时区进行调整(所以它给了我 UTC 的一天的开始,而不是用户所在的一天的开始)而且我的步数也被高度夸大了(原因未知) .
【问题讨论】:
-
这可以帮助您快速查看答案stackoverflow.com/questions/29582462/…
-
您应该包含查询代码以及如何计算步数,以便我们帮助您解决此问题。如果您发现您犯了同样的错误,您也可以关注我对stackoverflow.com/questions/36560367/… 的回复以获得指导。
-
NSTimeZone.localTimeZone() 在你的应用中返回什么?
-
答案可以在这里找到:stackoverflow.com/questions/36560367/…