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

标签 objective-c macos

我正在开发一个 Mac 应用程序,它应该能够区分 MacBook 和 Mac 桌面 (iMac/Mac Pro)。

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

最佳答案

您可以使用这个小程序。 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 相同的输出。

关于objective-c - 如何以编程方式区分 MacBook 和 Mac 桌面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17518501/

相关文章:

objective-c - 错误:在应用程序启动结束时,应用程序应具有 Root View Controller

c++ - 需要左值作为赋值错误的左操作数

objective-c - Xcode 项目比较工具

git - 在没有行结束文件更改的情况下在 mac 和 windows vm 之间共享 git repo

javascript - 用于结束 chrome 选项卡进程的键盘快捷方式

macos - 无法在 macOS High Sierra 上构建和安装 Valgrind

ruby - 在 mac osX (Lion) 上为 ruby​​ 安装 libyaml

ios - 了解在横向模式下使用 subview (UICollectionView)调整 UIView 的大小

c++ - 何时使用 ". "或 "-> "运算符来访问属性或成员函数?

iphone - 动态本地化应用程序内部的 iOS 应用程序?