我正在寻找一些简短的代码来捕捉运行我的Obj-C应用程序的mac类型(采用描述性字符串格式)。
喜欢:' MacBook Pro(Retina,15英寸,2013年末)'
感谢
答案 0 :(得分:2)
这不是太糟糕,但你必须使用一点C.这个答案来自http://joris.kluivers.nl/blog/2013/11/28/model-identifiers/关于这个主题的优秀博客文章。它的要点是您使用sysctlbyname()
来查找模型标识符,如MacBookPro8,2
,然后将其转换为人类可读的字符串。此代码段创建模型标识符:
#include <sys/types.h>
#include <sys/sysctl.h>
size_t size;
sysctlbyname("hw.model", NULL, &size, NULL, 0);
char *model = malloc(size);
sysctlbyname("hw.model", model, &size, NULL, 0);
NSLog(@"%s", model); // You would probably copy it to a NSString for later use
free(model);
一旦你将该字符串作为NSString
,遗憾的是,这并不是一种内置的方式来转换标识符和一个很好地显示的名称。但是我找到了这个网站http://www.everymac.com/systems/by_capability/mac-specs-by-machine-model-machine-id.html,它似乎拥有了你可能想要的所有mac模型,并且在名称和标识符之间进行了简单的转换。你不得不做一些工作把它放到一个文件中,但不应该太糟糕。希望有所帮助!