我正在dispatch_async
使用 iphone 4s 和 ipad 1st gen 编写一些代码并获得不同的结果。
我想知道这是否是由于 CPU 的内核数量所致。是否可以在运行时检测 iOS 设备的内核数或 CPU 类型,以便我可以dispatch_async
在 4s 上,但不能在 ipad 上?
我正在dispatch_async
使用 iphone 4s 和 ipad 1st gen 编写一些代码并获得不同的结果。
我想知道这是否是由于 CPU 的内核数量所致。是否可以在运行时检测 iOS 设备的内核数或 CPU 类型,以便我可以dispatch_async
在 4s 上,但不能在 ipad 上?
下面是检测 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");
}