如何查看用户对Motion&健身活动UIAlertController

时间:2017-03-01 23:46:29

标签: ios swift xcode core-motion

我正在开发一款需要访问用户动态&健身活动 - 即计步器数据。在这个应用程序的入门中,我有一个按钮,调用我的CMPedometer对象的startUpdates方法,触发iOS显示UIAlertViewController,要求用户决定该应用程序是否有权访问该数据。

按钮代码:

func didSelectActionButton() {
        switch state {
        case .appFirstLaunched:
            pedometer.startUpdates(from: Date()) { (pedometerData, error) in
            }
            timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(checkPermissionsEverySecond), userInfo: nil, repeats: true)
        case .noPermissionGranted:
            timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(checkPermissionsEverySecond), userInfo: nil, repeats: true)
        case .permissionGranted:
            pedometer = nil     navigationController?.pushViewController(RecordMeasurementController(), animated: true)

        }
    }

func checkPermissionsEverySecond() {
        if timerInSeconds < 5  && CMSensorRecorder.isAuthorizedForRecording() {
            permissionGranted()
            timer.invalidate()
        } else {
            noPermissionGranted())
            timer.invalidate()
        }
        timerInSeconds += 1
    }

如上面的代码所述,有三种状态:1)appFirstLaunched,2)noPermissionGranted,3)permissionGranted。我检测到用户是否允许访问数据以及随后的状态更改都感觉很草率。理想情况下,我希望我的应用程序立即响应用户在UIAlertViewController中选择的内容。

是否有可能更直接地指示用户选择的内容,而不是每n秒检查一次CMSensorRecorder.isAuthorizedForRecording()

0 个答案:

没有答案