我正在用dispatch_async
編寫一些代碼,並在iphone 4s和ipad 1st gen上得到不同的結果。檢測iOS設備上的CPU核心
我想知道是否是由於CPU的核心數。是否有可能在運行時檢測到iOS設備的核心數或CPU類型,因此我可以在4s上使用dispatch_async
,但不能在ipad上使用?
我正在用dispatch_async
編寫一些代碼,並在iphone 4s和ipad 1st gen上得到不同的結果。檢測iOS設備上的CPU核心
我想知道是否是由於CPU的核心數。是否有可能在運行時檢測到iOS設備的核心數或CPU類型,因此我可以在4s上使用dispatch_async
,但不能在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");
}
'#include
我不這麼認爲。這只是一個標準的C庫。 –
對於尋找物理內核的用戶,請使用鍵:hw.physicalcpu – logancautrell
不認爲它當之無愧爲一個downvote? – jarryd