检测iOS设备上的CPU核心

时间:2012-10-11 12:09:12

标签: ios objective-c grand-central-dispatch

我正在用dispatch_async编写一些代码,并在iphone 4s和ipad 1st gen上获得不同的结果。

我想知道这是否是由于CPU的核心数量。是否有可能在运行时检测iOS设备的核心数或CPU类型,因此我可以在4s上dispatch_async,但在ipad上却不能?

1 个答案:

答案 0 :(得分:7)

以下是检测iOS设备上核心数量的代码:

#include <sys/sysctl.h>

unsigned int countCores()
{
    size_t len;
    unsigned int ncpu;

    len = sizeof(ncpu);
    sysctlbyname ("hw.ncpu",&ncpu,&len,NULL,0);

    return ncpu;
}

除此之外,您还可以查看[[UIDevice currentDevice] userInterfaceIdiom]以确定该设备是iPhone还是iPad。像这样:

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
    NSLog(@"iPad");
}
else {
    NSLog(@"iPhone");
}

Reference