Ios Cm计步器数据超过7天

Ios Cm计步器数据超过7天,ios,swift,core-motion,Ios,Swift,Core Motion,我试着从CMPedometer收集10天的步数。它可以正常工作7天,但在最后三天返回0 代码如下: var days:[String] = [] var stepsTaken:[Int] = [] let activityManager = CMMotionActivityManager() let pedoMeter = CMPedometer() var cnt = 0 override func viewDidLoad() { super.viewDidLoad() g

我试着从CMPedometer收集10天的步数。它可以正常工作7天,但在最后三天返回0

代码如下:

var days:[String] = []
var stepsTaken:[Int] = []
let activityManager = CMMotionActivityManager()
let pedoMeter = CMPedometer()

var cnt = 0

override func viewDidLoad() {
    super.viewDidLoad()
    getDataForLast10Days()
}

func getDataForLast10Days() {
    if(CMPedometer.isStepCountingAvailable()){
        let serialQueue : DispatchQueue  = DispatchQueue(label: "com.example.MyQueue", attributes: .concurrent)
        let formatter = DateFormatter()
        formatter.dateFormat = "d MMM"
        serialQueue.sync(execute: { () -> Void in
            let today = NSDate()
            for day in 1...10{
                let from = NSDate(timeIntervalSinceNow: Double(-7+day) ))
                let hour = Calendar.current.component(.hour, from: from as Date)
                let min = Calendar.current.component(.minute, from: from as Date)
                let sec = Calendar.current.component(.second, from: from as Date)
                let timeToSub = (hour * 60 + min) * 60 + sec
                let fromDate = NSDate(timeIntervalSinceNow: (Double(-10+day) * (86400 ) ) - Double(timeToSub))
                let toDate = NSDate(timeIntervalSinceNow: (Double(-10+day+1) * (86400) ) - Double(timeToSub))
                let dtStr = formatter.string(from: (toDate as Date))

                self.pedoMeter.queryPedometerData(from: fromDate as Date , to: toDate as Date) { (data : CMPedometerData!, error) -> Void in
                    //print("From Date: \(fromDate)","\n\n")
                    if(error == nil){
                        // print(data,"\n\n")
                        print("\(dtStr) : \(data.numberOfSteps)")
                        self.days.append(dtStr)
                        self.stepsTaken.append(Int(data.numberOfSteps))
                    }
                }
            }
        })
    }
}
但随着我创建应用程序后天数的增加,数据每天都会增加一天。我创建应用程序已经两天了。它有9天的数据等等。我如何处理这个问题

请告诉我怎么了。

一切都好

根据实例方法的方法定义
queryedometerdata(from:to:withHandler:)

只有过去七天的数据被存储并可供您使用 取回。在中指定超过七天的开始日期 过去只返回可用的数据