试图找到一种方法来检测存在的M7。

如果不存在M7,查询CMStepCounter或CMMotionActivity类是否毫无意义?我的猜测是,在具有iOS 7.0的非M7型号上,这些类会获取数据,但效率却不高,并且会消耗更多的电池。

粗略的方法是:

struct utsname systemInfo;

uname(&systemInfo);

model =  [[NSString alloc] initWithCString:systemInfo.machine
                                      encoding:NSUTF8StringEncoding];

version =  [[NSString alloc] initWithString:[[UIDevice currentDevice] systemVersion]];


if ([model compare:@"iPhone6,1"]) {

}

最佳答案

使用Apple提供的API:

if ([CMStepCounter isStepCountingAvailable]) {
    // The device supports step counting
} else {
    // The device does not support step counting
}

if ([CMMotionActivityManager isActivityAvailable]) {
    // You can use CMMotionActivity
} else {
    // Nope, not supported
}

当然,此API仅在iOS 7或更高版本上。因此,如果您需要支持iOS 5或6,则还需要将此代码包装在CMStepCounter类的检查中。

关于ios - 如何检测是否存在M7(也就是iPhone 5S或更高版本)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18971450/

10-14 20:40