ios开发课程



在iOS 10中的CMPedometer (1)

您正在使用Xcode的测试版本,日志对所有用户都是通用的。 没有什么可担心的。 编辑你的代码lil位。

import UIKit
import CoreMotion

class ViewController: UIViewController {

    var days:[String] = []
    var stepsTaken:[Int] = []

    let activityManager = CMMotionActivityManager()
    let pedoMeter = CMPedometer()

    override func viewDidLoad() {
        super.viewDidLoad()

        let cal = Calendar.current
        var comps = cal.components([.year, .month, .day, .hour, .minute, .second], from: Date())
        comps.hour = 0
        comps.minute = 0
        comps.second = 0
        let timeZone = TimeZone.system
        cal.timeZone = timeZone

        let midnightOfToday = cal.date(from: comps)!

        #if arch(i386) || arch(x86_64) && os(iOS)

            // Simulator

        #else

            // Run only in Physical Device, iOS

            if(CMPedometer.isStepCountingAvailable()){

                self.pedoMeter.startUpdates(from: midnightOfToday) { (data: CMPedometerData?, error) -> Void in
                    DispatchQueue.main.async(execute: { () -> Void in
                        if(error == nil){
                            print("\(data!.numberOfSteps)")
                            //self.step.text = "\(data!.numberOfSteps)"
                        }
                    })
                }
            }
        #endif
    }
}

info.plist添加密钥Privacy - Motion Usage DescriptionString值为YES

尝试在iPhone中再次运行应用程序并检查。

我正在尝试访问iOS 10中的CMPedometer数据,我已经跟随了几个教程,我似乎无法得到任何工作。 我从来没有试过访问这个信息,所以不知道从哪里开始。 我想在获得一些设置方面有所帮助。 任何帮助,您可以提供将不胜感激。

我想同时进行实时更新和访问信息形式通过,但只在同一天。

这目前不打开并打印一个巨大的错误。

import UIKit
import CoreMotion

class ViewController: UIViewController {

var days:[String] = []
var stepsTaken:[Int] = []

let activityManager = CMMotionActivityManager()
let pedoMeter = CMPedometer()

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    let cal = Calendar.current
    var comps = cal.components([.year, .month, .day, .hour, .minute, .second], from: Date())
    comps.hour = 0
    comps.minute = 0
    comps.second = 0
    let timeZone = TimeZone.system
    cal.timeZone = timeZone

    let midnightOfToday = cal.date(from: comps)!

    if(CMPedometer.isStepCountingAvailable()){

        self.pedoMeter.startUpdates(from: midnightOfToday) { (data: CMPedometerData?, error) -> Void in
            DispatchQueue.main.async(execute: { () -> Void in
                if(error == nil){
                    print("\(data!.numberOfSteps)")
                    //self.step.text = "\(data!.numberOfSteps)"
                }
              })
           }
       }

    }
}

我一直在玩弄一些东西,并意识到,如果模拟器是开放的,也会出现一个很大的错误信息。 但是,如果其关闭和运行只在我的手机上的错误是:

2016-07-16 18:13:38.054710测试[419:37870] [access]私有





ios10