區分不同版本的iPhone

2022-03-20 11:58:38 字數 2831 閱讀 6169

區分不同版本的iphone

可以從 uidevice 的屬性 model 得到在現在執行的環境。例子如下:

123

4567

8910

nsstring *modelname = [[uidevice currentdevice]model];

if ([modelname isequaltostring:@"iphone"])

if ([modelname isequaltostring:@"ipod touch"])

if ([modelname isequaltostring:@"iphone simulator"])

或者

123

4567

891011

1213

#import

#if target_os_iphone

// iphone device

#endif

#if target_iphone_simulator

// iphone simulator

#endif

#if!target_iphone_simulator

// iphone device

#endif

可以通過 uname 函式取得當前機器的版本。例子如下:

123

4567

891011

1213

1415

1617

1819

2021

22

struct

utsname

u;uname(&u);

nsstring *machine = [nsstring stringwithcstring:u.machine];

if ([machine isequaltostring:@"iphone1,1"])

if ([machine isequaltostring:@"iphone1,2"])

if ([machine isequaltostring:@"iphone2,1"])

if ([machine isequaltostring:@"ipod1,1"])

if ([machine isequaltostring:@"ipod2,1"])

if ([machine isequaltostring:@"ipod3,1"])

123

4567

891011

1213

1415

1617

1819

- (nsstring *) platform

可以使用 uidevice 的屬性 systemversion 來得到。例子如下:

123

4567

8910

nsstring *osversion = [uidevice currentdevice].systemversion;

if ([osversion isequaltostring:@"2.1"])

if ([osversion isequaltostring:@"2.2.1"])

if ([osversion isequaltostring:@"3.0"])

這裡有乙個別人寫好的類庫,專門用來得到系統版本資訊,用起來比較方便。

就像在windows系統下用 winver 巨集來判斷 windows 系統版本一樣,iphone os 中也有類似的巨集。

123

4

// 

當前系統支援的最小版本

__iphone_os_version_min_required

// 當前系統支援的最大版本

__iphone_os_version_max_allowed

比如用 iphone os sdk 3.1.2 編譯的程式

1

2

__iphone_os_version_min_required == __iphone_3_0

__iphone_os_version_max_allowed == __iphone_3_1

這時,我們可以在程式中使用下面類似的 $ifdef 語句:

123

45

#if __iphone_os_version_max_allowed > __iphone_2_2

// iphone os sdk 3.0 以後版本的處理

#else

// iphone os sdk 3.0 之前版本的處理

#endif

又或者 iphone os sdk 4 推出的時候,可以:

123

4567

89

#if __iphone_os_version_max_allowed > __iphone_2_2

#if __iphone_os_version_max_allowed > __iphone_3_1

// iphone os sdk 4.0 以後版本的處理

#else

// iphone os sdk 3.0 ~ 4.0 版本的處理

#endif

#else

// iphone os sdk 3.0 之前版本的處理

#endif

在 qt pro檔案中區分不同的qt版本

由於不同的版本的qt需鏈結不同的庫檔案,為了在專案檔案中對這個問題進行透明處理,需在 pro檔案中加入對當前qt 版本的判斷 chec qtversionqt version qt version qt version split qt version,qt ver maj member qt ve...

QT 版本號識別 不同系統區分

不同系統使用區分 1 qt version 在qt 工程中的pro檔案中可以使用message 列印出當前使用qt的版本如 qt core gui greaterthan qt major version,4 qt widgets message qt version qt version 在概要資...

埠 區分不同服務

埠 是英文port的意譯,可以認為是裝置與外界通訊交流的出口。埠詳解 埠是指介面電路中的一些暫存器,這些暫存器分別用來存放資料資訊 控制資訊和狀態資訊,相應的埠分別稱為資料埠 控制埠和狀態埠。電腦執行的系統程式,其實就像乙個閉合的圓圈,但是電腦是為人服務的,他需要接受一些指令,並且要按照指令調整系統...