2017-06-27 3 views
-3

Ich muss verschiedene iPhone-Geräte mit Objective C identifizieren. Ich habe es in Swift, wie unten gezeigt Code getan.Wie iPhone-Gerät programmgesteuert zu identifizieren

if UIDevice().userInterfaceIdiom == .phone 
     { 
      switch UIScreen.main.nativeBounds.height 
      { 
      case 480: 
       print("iPhone Classic") 
      case 960: 
       print("iPhone 4 or 4S") 

      case 1136: 
       print("iPhone 5 or 5S or 5C") 

      case 1334: 
       print("iPhone 6 or 6S") 

      case 2208: 
       print("iPhone 6+ or 6S+") 

      default: 
       print("unknown") 

      } 
     } 

Jetzt benötigte ich das mit objective-c? Ich habe verschiedene Stack Fragen zu diesem Thema gesehen, aber nicht in der Lage, diesen Weg zu erhalten, die ich eigentlich brauche.

Bitte helfen Sie mir, ich bin neu in Objective-C.

+1

Blick auf diese https://stackoverflow.com/questions/11197509/ios-how-to-get-device-make-and-model –

+1

nicht Bildschirmgröße verwenden, um zu versuchen Modell zu erraten. Siehe verknüpfte Antwort im obigen Kommentar. – picciano

+0

Okay, danke Jungs. –

Antwort

2

Sie eine Bibliothek wie den folgenden Link verwenden können Geräte zu erkennen:

https://github.com/fahrulazmi/UIDeviceHardware 

die Plattform zu bekommen identfier

NSString *platform = [UIDeviceHardware platform]; 

den Plattformnamen Um

NSString *platformString = [UIDeviceHardware platformString]; 

oder Sie möchten das genauso machen wie mit swift:

@import UIKit; 

//Detect iPhone model 
double screenHeight = [[UIScreen mainScreen] bounds].size.height; 
if(UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad) 
{ 
    NSLog(@"All iPads"); 
} else if (UI_USER_INTERFACE_IDIOM()== UIUserInterfaceIdiomPhone) 
{ 
    if(screenHeight == 480) { 
     NSLog(@"iPhone 4 or 4S"); 
    } else if (screenHeight == 568) { 

     NSLog(@"iPhone 5 or 5S or SE"); 
    } else if (screenHeight == 667) { 

     NSLog(@"iPhone 6 or 6S"); 
    } else if (screenHeight == 736) { 
     NSLog(@"iPhone 6+ or 6S+"); 
    } else { 
     NSLog(@"Others, I don't know exactly"); 
    } 
} 
+0

Wenn Höhen nicht korrekt sind, ändern Sie es auf den Wert, den Sie vielleicht kennen, wollte ich nur die Methode – Meikiem

+0

zeigen Danke, dass es für mich funktioniert. –

1

Wie wäre es damit?

if([[UIDevice currentDevice]userInterfaceIdiom]==UIUserInterfaceIdiomPhone) { 
    switch ([[UIScreen mainScreen] bounds].size.height) { 
     case 480: 
      printf(@"iPhone Classic"); 
      break; 
     case 960: 
      printf("iPhone 4 or 4S"); 
      break; 
     case 1136: 
      printf("iPhone 5 or 5S or 5C"); 
      break; 
     case 1334: 
      printf("iPhone 6 or 6S"); 
      break; 
     case 2208: 
      printf("iPhone 6+ or 6S+"); 
      break; 
     default: 
      printf("unknown"); 
    } 
} 

Haftungsausschluss - Ich habe dies nicht getestet, aber es sollte gut funktionieren.

1

// Zeigt Gerätemodellnummer
- (NSString *) deviceModelNumber
{

struct utsname Systeminfo;
uname (& Systeminfo);
Rückgabe [NSString stringWithCString: systemInfo.machine
Codierung: NSUTF8StringEncoding];
}
// Bietet Geräte os Version
- (NSString *) deviceOS
{
return [[UIDevice currentDevice] Systemversion];
}

Verwandte Themen