我正试图找出一种方法来处理Motion活动的授权状态
这是我到目前为止所提出的:
manager = CMMotionActivityManager()
manager.queryActivityStartingFromDate(now, toDate: now, toQueue: NSOperationQueue.mainQueue(),
withHandler: { (activities: [CMMotionActivity]?, error: NSError?) -> Void in
if(error != nil){
if(error!.code != Int(CMErrorMotionActivityNotAuthorized.rawValue)){
print("CMErrorMotionActivityNotAuthorized")
}else if(error!.code != Int(CMErrorMotionActivityNotEntitled.rawValue)){
print("CMErrorMotionActivityNotEntitled")
}else if(error!.code != Int(CMErrorMotionActivityNotAvailable.rawValue)){
print("CMErrorMotionActivityNotAvailable")
}
}
})
当我拒绝移动活动的应用程序权限时(通过settings
),我得到CMErrorMotionActivityNotEntitled
(我相信我应该得到CMErrorMotionActivityNotAuthorized
)
任何想法为什么?或者至少是这样做的正确方法是什么?
答案 0 :(得分:3)
也许你 获得CMErrorMotionActivityNotAuthorized
。您永远不会知道您的代码,因为您的代码不会询问您获得的代码。它会询问您不获取的代码:
if(error!.code != Int(CMErrorMotionActivityNotAuthorized.rawValue)){
print("CMErrorMotionActivityNotAuthorized")
}else if(error!.code != Int(CMErrorMotionActivityNotEntitled.rawValue)){
print("CMErrorMotionActivityNotEntitled")
}else if(error!.code != Int(CMErrorMotionActivityNotAvailable.rawValue)){
print("CMErrorMotionActivityNotAvailable")
}
!=
运算符表示不是。因此,您正在对代码不是的内容进行一系列检查。通过提出这个问题,很难看出如何获得任何有用的信息。询问代码是可能更有意义,这将涉及使用==
运算符。