是否有任何方式在運行時對iPhone設備執行運行時檢查? 它必須能夠區分iPhone 4與其他iPhone/iPod touch型號。 任何可以做同樣事情的解決方法也可以。在運行時確定iPhone設備
回答
我用一些像這樣的代碼,爲了同樣的目的:
if([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
return [[UIScreen mainScreen] scale] == 2.0 ? YES : NO;
return NO;
僅限iOS 4.x版+設備支持UIScreen scale
實例方法。而且由於iPhone4不運行iOS 3,我們可以立即排除這些問題。接下來,我們檢查比例因子是否爲2.0,如果是的話,我們知道它具有視網膜顯示。儘管這不是明確的(蘋果明天可能會發布另一個視網膜設備),但它確實在重要的地方測試了「模型」 - 也就是說,您可以從提供@ 2x圖像和標準圖像的Web服務中提取圖像,這就是我正在做的,這意味着您需要手動編寫縮放圖像支持,您不會像UIImage的-imageNamed:
那樣免費獲得本地文件。
謝謝!那正是我需要的。 – tadejsv 2010-08-14 15:00:50
你可以通過的UIDevice類的準確型號:
[[UIDevice currentDevice] model]
這,和一些其他的方法記錄在這裏:http://developer.apple.com/iphone/library/documentation/uikit/reference/UIDevice_Class/Reference/UIDevice.html
要小心,不過,不要混淆與iOS版本的硬件模型。如果您想爲支持它們的設備提供額外的/不同的功能,最好使用respondsToSelector:方法或NSClassFromString函數來檢查特定接口是否可用。
但是,使用NSClassFromString函數時要小心,因爲有些類作爲早期SDK中的私有API的一部分存在:具有完全不同的接口。
我翻看了一下,它只在iPod和iPhone之間區別,而不是在不同版本的iPhone之間。 – tadejsv 2010-08-15 07:42:55
- 1. iphone程序未在設備上運行
- 2. 在iPhone設備上運行XCTest
- 3. ActionScript/AIR - 運行時確定設備配置文件?
- 4. 確定iPhone設備的型號
- 5. 指定在設備上運行哪個iPhone OS?
- 6. 在iPhone設備上運行iframeextractor時的低幀率
- 7. dyld:庫未加載:在iPhone設備上運行時出錯
- 8. UIImageView動畫崩潰時,在iPhone設備上運行
- 9. setLaunchPath:@「/ bin/ps」在iPhone設備上運行時崩潰
- 10. 運行在設備
- 11. 運行時註冊設備
- 12. 在運行時確定(C#)
- 13. OpenCL:確定設備是否已在運行
- 14. 如何確定在模擬器中運行的設備?
- 15. 確定哪個IOS在設備上運行
- 16. 確定是否在根設備上運行
- 17. UnknownHostException在設備上運行時
- 18. 設備上運行iPhone應用程序時出錯
- 19. iOS設備在設備上運行時不顯示圖像
- 20. iPhone和cocos2d - 在設備上運行時出現間隔操作時間問題
- 21. 確定ipad設備
- 22. 在設備上運行
- 23. SQLite - 在設備上運行
- 24. 使用bengottlieb/Twitter的OAuth的iPhone,iPhone的設備上運行
- 25. Facebook SDK未在iPhone模擬器上運行,僅在設備上
- 26. MobileFirst應用在設備被鎖定時運行?
- 27. 在Java運行時確定基類在運行時
- 28. iPhone設備定位錯誤
- 29. 在iPhone設備上運行時,調試程序不會在斷點處停止
- 30. javax.comm:確定哪個串行端口我的GPS設備正在運行
可能重複[iPhone - 我如何檢測iPhone版本?](http://stackoverflow.com/questions/3177634/iphone-how-do-i-detect-the-iphone-version) – Tim 2010-08-14 14:43:53