如何获取 iOS 上的内部名称?
How can I get the internal name on iOS?
我需要获取有关 iOS 的 CPU 信息。我正在通过代码 iPhone8,1(这是 iPhone 6s)执行此操作,但是 iPhone 6s、6s plus 和 iPhone SE 有两个不同的处理器,一个是三星(N69uAP)和另一个由台积电(N69AP)制造。我需要知道我正在使用的 phone 使用的是什么处理器,有谁知道在这种情况下我如何区分它们?我唯一知道的是这些代码不同(N69uAP 和 N69AP),但我不知道如何获得它们。这是我在每个型号只有一个处理器的旧 iPhone 中所做的:
if (([platform isEqualToString:@"iPhone7,1"]) ||([platform isEqualToString:@"iPhone7,2"]))
return @"T7000";
//this is iPhone 6
我获得有关 iPhone 的信息的站点:https://www.theiphonewiki.com/wiki/Models#iPhone
只是一个想法,但也许 sysctl
可以提供帮助。 运行 sysctl
在我的 Mac returns 信息中,例如(在许多其他行中):
$ sysctl -A | grep cpu
...
hw.cputype: 7
hw.cpusubtype: 8
hw.cpufamily: 280134364
hw.cpufrequency: 2600000000
machdep.cpu.vendor: GenuineIntel
machdep.cpu.brand_string: Intel(R) Core(TM) i7-4960HQ CPU @ 2.60GHz
machdep.cpu.family: 6
machdep.cpu.model: 70
machdep.cpu.extmodel: 4
machdep.cpu.extfamily: 0
...
我没有测试过 iOS 上是否有相同的信息,但我认为值得一试。 Matt Gallagher 的文章 Gathering system information in Swift with sysctl 可能有助于了解如何调用 sysctl
。它针对的是 Swift,但在 Objective-C 中调用 sysctl
应该更容易。
示例代码只是为了获取内部名称,例如 iPhone7,1
:
#import <sys/utsname.h>
@interface UIDevice (InternalName)
- (NSString*) internalModelName;
@end
@implementation UIDevice (InternalName)
- (NSString*) internalModelName {
struct utsname systemInfo;
uname(&systemInfo);
return [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];
}
@end
我需要获取有关 iOS 的 CPU 信息。我正在通过代码 iPhone8,1(这是 iPhone 6s)执行此操作,但是 iPhone 6s、6s plus 和 iPhone SE 有两个不同的处理器,一个是三星(N69uAP)和另一个由台积电(N69AP)制造。我需要知道我正在使用的 phone 使用的是什么处理器,有谁知道在这种情况下我如何区分它们?我唯一知道的是这些代码不同(N69uAP 和 N69AP),但我不知道如何获得它们。这是我在每个型号只有一个处理器的旧 iPhone 中所做的:
if (([platform isEqualToString:@"iPhone7,1"]) ||([platform isEqualToString:@"iPhone7,2"]))
return @"T7000";
//this is iPhone 6
我获得有关 iPhone 的信息的站点:https://www.theiphonewiki.com/wiki/Models#iPhone
只是一个想法,但也许 sysctl
可以提供帮助。 运行 sysctl
在我的 Mac returns 信息中,例如(在许多其他行中):
$ sysctl -A | grep cpu
...
hw.cputype: 7
hw.cpusubtype: 8
hw.cpufamily: 280134364
hw.cpufrequency: 2600000000
machdep.cpu.vendor: GenuineIntel
machdep.cpu.brand_string: Intel(R) Core(TM) i7-4960HQ CPU @ 2.60GHz
machdep.cpu.family: 6
machdep.cpu.model: 70
machdep.cpu.extmodel: 4
machdep.cpu.extfamily: 0
...
我没有测试过 iOS 上是否有相同的信息,但我认为值得一试。 Matt Gallagher 的文章 Gathering system information in Swift with sysctl 可能有助于了解如何调用 sysctl
。它针对的是 Swift,但在 Objective-C 中调用 sysctl
应该更容易。
示例代码只是为了获取内部名称,例如 iPhone7,1
:
#import <sys/utsname.h>
@interface UIDevice (InternalName)
- (NSString*) internalModelName;
@end
@implementation UIDevice (InternalName)
- (NSString*) internalModelName {
struct utsname systemInfo;
uname(&systemInfo);
return [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];
}
@end