2011-12-08 44 views
7

可能重複:
Determine device (iPhone, iPod Touch) with iPhone SDK如何通過代碼找到iPhone/iPod設備型號(3G,3GS,4,4S)?

我試圖獲取當前設備的型號名稱,比如3G,3GS,4,4S,iPodTouch的(不同代)。但是,直到現在,我無法得到確切的結果。你能幫我找出設備型號嗎?在這裏,我附上了我用來獲取設備模型的代碼。

UIDevice *device = [UIDevice currentDevice]; 
NSString *deviceVersion = [device systemVersion];//Return 4.0.1 and 5.0.1 
NSString *deviceName = [device systemName];//Return iPhone, iPod Touch 

如何獲取設備型號3G,3GS,4,4S,iPod Touch,iPad?提前致謝。

+3

已經有一個偉大的答案後。 [點擊這裏,查看布賴恩·羅賓斯的答案。] [1] [1]:http://stackoverflow.com/questions/448162/determine-device-iphone-ipod-touch-with-iphone-sdk – gurooj

回答

13
#import <sys/utsname.h> 

NSString* 
machineName() 
{ 
    struct utsname systemInfo; 
    uname(&systemInfo); 

    return [NSString stringWithCString:systemInfo.machine 
           encoding:NSUTF8StringEncoding]; 
} 

結果應該是:

@"i386"  on the simulator 
@"iPod1,1" on iPod Touch 
@"iPod2,1" on iPod Touch Second Generation 
@"iPod3,1" on iPod Touch Third Generation 
@"iPod4,1" on iPod Touch Fourth Generation 
@"iPhone1,1" on iPhone 
@"iPhone1,2" on iPhone 3G 
@"iPhone2,1" on iPhone 3GS 
@"iPad1,1" on iPad 
@"iPad2,1" on iPad 2 
@"iPhone3,1" on iPhone 4 
@"iPhone4,1" on iPhone 4S 
+0

謝謝Mr.Nithin先生。你的代碼運行非常完美,我期望的。非常感謝。 – Gopinath

+0

更新新機型。 iPhone5,2在iPhone 5(白色)和iPhone6,2在iPhone 5s(黃金)從我自己的設備。 – Joey

2

girhub上有一個庫,可以做到這一點。請參閱此鏈接:

https://github.com/erica/uidevice-extension

+0

這些方法使用私有API,並很可能會拒絕您的應用程序。 – WrightsCS

+2

@WrightsCS它們明顯分爲適用於應用商店的那些,以及那些可能不是的。 –

+0

謝謝Mr.WrightsCS先生和安東尼布萊克先生。感謝您的寶貴幫助。 – Gopinath

相關問題