[[UIDevice currentDevice] model];
から返される値はすべてありますか?それはdocumentedではありません。UIDevice currentDeviceモデルの可能な値
答えて
あなたはiPhone3
のように台無しにされているハードウェアiOS
知りたい場合は可能バレスはiPod touch
、iPhone
、iPhone Simulator
、iPad
、iPad Simulator
あり、iPhone4
、iPhone5
など以下はその
注:以下のコードにはすべてのdevi GitHub/DeviceUtil
スウィフト:GitHub/DeviceGuru
#include <sys/types.h>
#include <sys/sysctl.h>
- (NSString*)hardwareDescription {
NSString *hardware = [self hardwareString];
if ([hardware isEqualToString:@"iPhone1,1"]) return @"iPhone 2G";
if ([hardware isEqualToString:@"iPhone1,2"]) return @"iPhone 3G";
if ([hardware isEqualToString:@"iPhone3,1"]) return @"iPhone 4";
if ([hardware isEqualToString:@"iPhone4,1"]) return @"iPhone 4S";
if ([hardware isEqualToString:@"iPhone5,1"]) return @"iPhone 5";
if ([hardware isEqualToString:@"iPod1,1"]) return @"iPodTouch 1G";
if ([hardware isEqualToString:@"iPod2,1"]) return @"iPodTouch 2G";
if ([hardware isEqualToString:@"iPad1,1"]) return @"iPad";
if ([hardware isEqualToString:@"iPad2,6"]) return @"iPad Mini";
if ([hardware isEqualToString:@"iPad4,1"]) return @"iPad Air WIFI";
//there are lots of other strings too, checkout the github repo
//link is given at the top of this answer
if ([hardware isEqualToString:@"i386"]) return @"Simulator";
if ([hardware isEqualToString:@"x86_64"]) return @"Simulator";
return nil;
}
- (NSString*)hardwareString {
size_t size = 100;
char *hw_machine = malloc(size);
int name[] = {CTL_HW,HW_MACHINE};
sysctl(name, 2, hw_machine, &size, NULL, 0);
NSString *hardware = [NSString stringWithUTF8String:hw_machine];
free(hw_machine);
return hardware;
}
CEの文字列は、私は他の人がそう
のObjective-C、そこから最新のコードをご利用くださいGitHubの上で同じコードを維持していると思い
私はちょうどiPod Touch、iPhone、電話網、iPhone 5、iPad、iPad RetinaおよびiPad Miniでテストを行いました。これが私の結論です:シミュレータで
iPod touch
iPhone
iPad
- あなたは時々シミュレータ上で全く動作しない機能に取り組んで開発している場合、これは有用である可能性 - あなたはこれらの値を取得します:
iPhone Simulator
iPad Simulator
あなたはシミュレータ... – andreas
ああ、掲示質問に対する実際の答えを忘れてしまいました!ありがとう。 iPadのミニが示されることになると便利なものを持っていなかった(そしてそれはXCodeのシミュレータではサポートされていない)、これはそれを答えた場合、私は特に思っていました。 – BobDickinson
誰でもAppleTVの値を知っていますか? – ColdLogic
私は説明のための最良の答え(ここに書かれていないもの)を信じています それは値自体が文字列値であると言います。 であり、可能な回答は「iPhone」、「iPad」などの文字列です。
これらの回答は新しいモデル番号に対しては拡張できません。ここに列挙です:
public enum DeviceType {
case iPad(String?)
case iPhone(String?)
case simulator(String?)
case appleTV(String?)
case unknown
}
と拡張子は、私は少しクリーナーと新しいモデルナンバーが出てくるときのために、もう少し拡張可能だと思うことを書きました。
extension UIDevice {
public static func getDevice() -> DeviceType {
var info = utsname()
uname(&info)
let machineMirror = Mirror(reflecting: info.machine)
let code = machineMirror.children.reduce("") { identifier, element in
guard let value = element.value as? Int8, value != 0 else {
return identifier
}
return identifier + String(UnicodeScalar(UInt8(value)))
}
if code.lowercased().range(of: "ipad") != nil {
if let range = code.lowercased().range(of: "ipad") {
var mutate = code
mutate.removeSubrange(range)
return .iPad(mutate)
}else{
return .iPad(nil)
}
}else if code.lowercased().range(of: "iphone") != nil {
if let range = code.lowercased().range(of: "iphone") {
var mutate = code
mutate.removeSubrange(range)
return .iPhone(mutate)
}else{
return .iPhone(nil)
}
}else if code.lowercased().range(of: "i386") != nil || code.lowercased().range(of: "x86_64") != nil{
return .simulator(code)
}else if code.lowercased().range(of: "appletv") != nil {
if let range = code.lowercased().range(of: "appletv") {
var mutate = code
mutate.removeSubrange(range)
return .appleTV(mutate)
}else{
return .appleTV(nil)
}
}else{
return .unknown
}
}
}
- 1. UIDeviceモデルとlocalizedModel
- 2. 到達可能性とUIDevice-到達可能性
- 3. ネットワーク経由でiphoneの[[UIDevice currentDevice] name]を送信しています
- 4. [[UIDevice currentDevice] setOrientation:UIInterfaceOrientationAnyOrientation]を使わずにLandScapeの向きを強制する
- 5. 方法[[UIDevice currentDevice] uniqueIdentifier]はもう許可されません。代わりが必要です
- 6. コアデータエンティティのローカライズ可能な属性値のモデルですか?
- 7. null可能な値の型
- 8. UIDeviceオリエンテーション
- 9. UIDeviceの向きが正しい値を返さない
- 10. EFデータ・モデルのデフォルト値を持つnull不可能な列の問題
- 11. EF4 2モデル1データベース、可能?
- 12. DX9.0cのcurrentDeviceコンテキストを取得
- 13. [UIDevice cuurentDevice]。appDidBecomeActiveコールバックの以前の値を返す。
- 14. 2つの可能な値のSQLクエリ?
- 15. jQueryのドラッグ可能な位置の値
- 16. EF4 null不可能な値へのnull可能な10進数の列のマッピング
- 17. アクセス制御可能なメソッドのデフォルト値
- 18. Resources.getIdentifier()、deftype引数の可能な値は?
- 19. Javaの変更可能なブール値フィールド
- 20. MSBuildのNull可能なパラメータ値
- 21. Mac OS X用のUIDeviceクラス?
- 22. JQueryUI接続可能なソート可能なソート可能なソート可能なイベント
- 23. Zend Framework:モデル内の翻訳可能なコンテンツ
- 24. このようなiOSモデルは実装可能ですか?
- 25. MPU-6050不可能な読み値ラズベリー
- 26. drupal再利用可能な値
- 27. 変更可能なHashMap値を変更可能なコレクションで更新します。
- 28. 次に利用可能なプライマリキーをモデル化する
- 29. レールで読み込み可能なモデルを作成する
- 30. エラー:割り当て不可能なモデル式:未定義
私はなぜこれが受け入れられたのか不思議です。それは全く質問に答えません。 – rmaddy
それは私には見えますが、ラウンドアバウトの仕方で見えます。 – tomasmcguinness
@Inder Kumar Rathore、iOS 6.1ではこの機能は完全には動作しません。 3から1のケースでは、他の値を返すことができます – CReaTuS