如何以编程方式区分MacBook和Mac桌面?

时间:2013-07-08 02:42:14

标签: objective-c macos

我正在开发一款可以区分MacBook和Mac台式机的Mac应用程序(iMac / Mac Pro)。

我想我可以用型号来完成它。那我怎么得到型号?哪个字母表明它是笔记本电脑或台式机?或者还有其他更简单或更好的方法吗?

2 个答案:

答案 0 :(得分:6)

你可以使用这个小程序。 NSLog输出来测试它。

#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/sysctl.h>

+ (NSString *)machineModel
{
    size_t length = 0;
    sysctlbyname("hw.model", NULL, &length, NULL, 0);      
    if (length) {
        char *m = malloc(length * sizeof(char));
        sysctlbyname("hw.model", m, &length, NULL, 0);
        NSString *model = [NSString stringWithUTF8String:m];
        free(m);
        return model;
    }
    return @"Unknown model";
}

它将提供与在终端上输入sysctl hw.model相同的输出。

答案 1 :(得分:5)

您尚未指定语言,但终端sysctl hw.model将返回当前Mac的标识符。例如,在我的计算机上,它返回MacBookPro5,5

相关问题