有没有办法使用 sysctl 获取 iPhone 模型?
Is there a way to get the iPhone model using sysctl?
我需要获取型号,例如:对于 iPhone 6,我想要获取的型号是 N61AP 而不是 iPhone 7,2。我在 objective-c 中需要这个。
我尝试了一些方法,但我得到的只是 'iPhone 7,2' :(
如果没有办法收集这个,有没有办法得到 CPU 供应商?谢谢!
尝试添加这个(任何地方都可以,app delegate 也许):
+ (NSString *)model
{
size_t size;
sysctlbyname("hw.model", NULL, &size, NULL, 0);
char *model = malloc(size);
sysctlbyname("hw.model", model, &size, NULL, 0);
NSString *modelString = [NSString stringWithUTF8String:model]; // could also use shorthand wrapper: '@(model)'
free(model);
return modelString;
}
对于我的 iPad Air 设备,这给了我 'J71AP'。
如果你真的想要像实际设备名称这样的东西(即 'iPhone7,2',或者在我的例子中,'iPad4,1'),用 "hw.machine" 替换 "hw.model" 会给它给你。
我需要获取型号,例如:对于 iPhone 6,我想要获取的型号是 N61AP 而不是 iPhone 7,2。我在 objective-c 中需要这个。 我尝试了一些方法,但我得到的只是 'iPhone 7,2' :( 如果没有办法收集这个,有没有办法得到 CPU 供应商?谢谢!
尝试添加这个(任何地方都可以,app delegate 也许):
+ (NSString *)model
{
size_t size;
sysctlbyname("hw.model", NULL, &size, NULL, 0);
char *model = malloc(size);
sysctlbyname("hw.model", model, &size, NULL, 0);
NSString *modelString = [NSString stringWithUTF8String:model]; // could also use shorthand wrapper: '@(model)'
free(model);
return modelString;
}
对于我的 iPad Air 设备,这给了我 'J71AP'。
如果你真的想要像实际设备名称这样的东西(即 'iPhone7,2',或者在我的例子中,'iPad4,1'),用 "hw.machine" 替换 "hw.model" 会给它给你。