回答
随意使用这个类 - 我发现它here
使用
UIDeviceHardware *h=[[UIDeviceHardware alloc] init];
[self setDeviceModel:[h platformString]];
[h release];
UIDeviceHardware.h
//
// UIDeviceHardware.h
//
// Used to determine EXACT version of device software is running on.
#import <Foundation/Foundation.h>
@interface UIDeviceHardware : NSObject
- (NSString *) platform;
- (NSString *) platformString;
@end
UIDeviceHardware.m
//
// UIDeviceHardware.m
//
// Used to determine EXACT version of device software is running on.
#import "UIDeviceHardware.h"
#include <sys/types.h>
#include <sys/sysctl.h>
@implementation UIDeviceHardware
- (NSString *) platform{
size_t size;
sysctlbyname("hw.machine", NULL, &size, NULL, 0);
char *machine = malloc(size);
sysctlbyname("hw.machine", machine, &size, NULL, 0);
NSString *platform = [NSString stringWithCString:machine];
free(machine);
return platform;
}
- (NSString *) platformString{
NSString *platform = [self platform];
if ([platform isEqualToString:@"iPhone1,1"]) return @"iPhone 1G";
if ([platform isEqualToString:@"iPhone1,2"]) return @"iPhone 3G";
if ([platform isEqualToString:@"iPhone2,1"]) return @"iPhone 3GS";
if ([platform isEqualToString:@"iPod1,1"]) return @"iPod Touch 1G";
if ([platform isEqualToString:@"iPod2,1"]) return @"iPod Touch 2G";
if ([platform isEqualToString:@"i386"]) return @"iPhone Simulator";
return platform;
}
@end
比我的回答要好得多,但有人需要在iPhone 4上运行此功能,并查看该机型的机器字符串。 我认为这可能是“iPhone3,1”。 – 2010-07-05 07:28:07
+1好点。我现在太累了,但我会明天尝试并发布结果 - 除非有人打我 – SeniorShizzle 2010-07-05 07:38:18
我只是使用hw.machine(和hw.model)。 iPhone1,1也被称为“原始iPhone”或“iPhone 2G”(非官方),Apple列出了“iPod Touch第二代”和“iPod Touch第三代”,其中一个在此处不存在(可能是iPod2,2), – 2010-07-05 12:01:34
#import <sys/utsname.h>
+ (NSString*)deviceModelName {
struct utsname systemInfo;
uname(&systemInfo);
NSString *modelName = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];
if([modelName isEqualToString:@"i386"]) {
modelName = @"iPhone Simulator";
}
else if([modelName isEqualToString:@"iPhone1,1"]) {
modelName = @"iPhone";
}
else if([modelName isEqualToString:@"iPhone1,2"]) {
modelName = @"iPhone 3G";
}
else if([modelName isEqualToString:@"iPhone2,1"]) {
modelName = @"iPhone 3GS";
}
else if([modelName isEqualToString:@"iPhone3,1"]) {
modelName = @"iPhone 4";
}
else if([modelName isEqualToString:@"iPhone4,1"]) {
modelName = @"iPhone 4S";
}
else if([modelName isEqualToString:@"iPod1,1"]) {
modelName = @"iPod 1st Gen";
}
else if([modelName isEqualToString:@"iPod2,1"]) {
modelName = @"iPod 2nd Gen";
}
else if([modelName isEqualToString:@"iPod3,1"]) {
modelName = @"iPod 3rd Gen";
}
else if([modelName isEqualToString:@"iPad1,1"]) {
modelName = @"iPad";
}
else if([modelName isEqualToString:@"iPad2,1"]) {
modelName = @"iPad 2(WiFi)";
}
else if([modelName isEqualToString:@"iPad2,2"]) {
modelName = @"iPad 2(GSM)";
}
else if([modelName isEqualToString:@"iPad2,3"]) {
modelName = @"iPad 2(CDMA)";
}
return modelName;
}
您可以使用此代码检测iPhone操作系统版本。 float version = [[[UIDevice currentDevice] systemVersion] floatValue];
if (version >= 3.0) {
// Only executes on version 3 or above.
}
- 1. 检测iPhone应用版本更新?
- 2. 如何使用宏检测iPhone操作系统版本
- 3. iphone检测php
- 4. 检测iPhone
- 5. 检测iPhone
- 6. 检测iPhone EndEvent
- 7. iPhone SDK版本
- 8. Xcode,iphone版本
- 9. 测试版iPhone上的iPhone开发?
- 10. 测试各种版本的iPhone Safari
- 11. iPhone应用程序的测试版本
- 12. iPhone接近检测
- 13. Verizon iPhone 4检测
- 14. 检测的iPhone/iPod
- 15. 检测iphone区域
- 16. 检测任何iOS版本
- 17. SQLite,iPhone和版本
- 18. 旧Iphone sdk版本
- 19. Iphone版本加密
- 20. 如何检测iOS版本?
- 21. 如何检测IE版本
- 22. 检测并为iPhone 3和iPhone 4
- 23. 如何检测应用程序中的iPhone操作系统版本?
- 24. 如何检测iPhone是否在振动?
- 25. 如何检测按钮按下和iphone
- 26. 如何通过iPhone/iPad检测css
- 27. 如何在网络上检测iPhone?
- 28. 如何检测Iphone/Ipod音量级别?
- 29. 我如何检测触摸UIStatusBar/iPhone
- 30. 如何检测iPhone上的LocallApStore工具?
您可以拨打[currentDevice](http://developer.apple.com/iphone/library/documentation/uikit/reference/UIDevice_Class/Reference/UIDevice.html#//apple_ref/doc/uid/TP40006902 -CH3-SW10)在UIDevice上查看模型属性。 **编辑:**虽然...文档建议这不包括确切的型号。 – 2010-07-05 07:09:17