我一直在编写一段代码,其中包含只有在Macbook,Macbook Pro或MacBook Air上运行时才能执行的部分。
到目前为止,我正在使用Targetconditionals.h,但是我只能验证我是否使用此策略在移动设备上运行,并且我的代码仍然在iMac和Mac Mini上执行。
您是否有任何关于如何获取某些特定信息的提示,这些信息仅在程序在Macbook,Macbook Pro或Macbook Air中运行时才会匹配?
答案 0 :(得分:0)
最后,我得到了一些可能暗示其他类似情况的提示:
#include <string>
#include <sys/sysctl.h>
bool isMacBook()
{
size_t len = 0;
::sysctlbyname("hw.model", nullptr, &len, nullptr, 0);
std::string model(len, '\0');
::sysctlbyname("hw.model", const_cast<char *>(model.data()), &len, nullptr, 0);
return model.find("MacBook") != std::string::npos;
}
我不认为这是一个完整的解决方案,但在我看来,它可以提供有用的信息。