簡體   English   中英

確定要模擬的iOS設備

[英]Determine which iOS device is being simulated

這個問題為確定使用中的真實設備提供了一種極好的方法。 但是,在模擬器上運行時,我想檢測是否在視網膜或64位版本上運行,以便可以觸發特殊邏輯,那該怎么辦?

您可以通過查看[UIScreen mainScreen].scale的值來確定設備(或模擬器)是否是視網膜。 如果為1,則為非視網膜。 如果為2,則為視網膜。

可能有幾種檢測64/32位的方法。 一種方法是:

if (sizeof(CGFloat) == sizeof(double)) {
    // 64-bit
} else {
    // 32-bit
}

請注意,這會檢查應用程序,而不是設備。 32位應用程序將在64位設備上運行。 如果應用程序構建為支持64位並且設備為64位,則以上代碼僅返回true。

您可以通過檢查[UIScreen mainScreen]scale來檢測設備/模擬器是否是視網膜。

要確定運行時的CPU類型,可以使用:

#include <mach/mach_host.h>

...

host_basic_info_data_t hostInfo;
mach_msg_type_number_t infoCount;

infoCount = HOST_BASIC_INFO_COUNT;
host_info(mach_host_self(), HOST_BASIC_INFO, (host_info_t)&hostInfo, &infoCount);

switch (hostInfo.cpu_type) {
    case CPU_TYPE_ARM:
        break;

    case CPU_TYPE_ARM64:
        break;

    case CPU_TYPE_X86:
        break;

    case CPU_TYPE_X86_64:
        break;

    default:
        break;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM