[cpp]view plain
copy
if(ui_user_inte***ce_idiom() ==uiuserinte***ceidiompad)
else
請注意,如果你在建立專案的時候只支援一種裝置型別,上面的語句將始終返回選定ios裝置型別,如專案只支援iphone,即使在ipad上執行,前述的**依然返回iphone裝置型別。
我們可以從 uidevice 的屬性 model 得到在現在執行的環境。
[cpp]view plain
copy
nsstring *modelname = [[uidevice currentdevice]model];
if([modelname isequaltostring:@
"iphone"
])
if([modelname isequaltostring:@
"ipod touch"
])
if([modelname isequaltostring:@
"iphone simulator"
])
或者也可以這樣:
[cpp]view plain
copy
#import
#if target_os_iphone
// iphone device
#endif
#if target_iphone_simulator
// iphone simulator
#endif
#if !target_iphone_simulator
// iphone device
#endif
可以通過 uname 函式取得當前機器的版本。
[cpp]view plain
copy
struct
utsname u;
uname(&u);
nsstring *machine = [nsstringstringwithcstring: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"
])
可以使用 uidevice 的屬性 systemversion 來得到。
[cpp]view plain
copy
nsstring *osversion = [uidevice currentdevice].systemversion;
if([osversion isequaltostring:@
"2.1"
])
if([osversion isequaltostring:@
"2.2.1"
])
if([osversion isequaltostring:@
"3.0"
])
symbian模擬器和真機的區別
模擬器是把symbian os核心移植到win32平台,大多數情況下模擬器環境和真機相似,但仍有以下區別,有些足以給開發者帶來不少麻煩。位元組對齊和記憶體限制將著重介紹。1.引導程式 真機上,首先執行乙個引導程式用來在啟動核心之前對一系列硬體初始化。模擬器就不需要進行初始化硬體而是直接啟動核心 執行...
lipo合併真機模擬器
合併真機模擬器.a檔案,製作通用靜態庫 這兩個庫乙個是用於真機執行的乙個是用於模擬器執行的.其實我們可以利用lipo將這二個檔案打包成乙個通用的a檔案。命令 lipo create users pjk1129 library developer xcode deriveddata print dgf...
時間轉換 真機和模擬器錯誤
iphone中nsdateformatter模擬器可以正常顯示,但在真機上不行,轉換後的nsstring為null,部分 如下 nsdateformatter formatter nsdateformatter alloc init formatter setdateformat eee mmm d...