2012-09-24 2 views

Antwort

49

prüfen diese GitHub Gist https://gist.github.com/998472

Sie können den Code hinzufügen oder beinhalten speziell überprüfen Sie es in Ihrem ...- Prefix.pch-Datei, so können Sie benutze es wo immer du es brauchst.


EDIT

Ich verlasse ein Beispiel, wie Sie den Code von Gist verwenden können, so dass die Leute können überprüfen, ob sie für ihren Fall nützlich ist. Dies kann auch über den Gist gefunden werden.

/* 
* Usage 
*/ 

if (SYSTEM_VERSION_LESS_THAN(@"4.0")) { 
    ... 
} 

if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"3.1.1")) { 
    ... 
} 
+0

Während ich den Code lieben, den Sie im Geiste haben (wie ich dort kommentiert habe), wäre es sogar besser, wenn Sie ein Beispiel dafür in diese Antwort aufnehmen könnten. –

+0

Es ist nicht mein Kern und ich werde den Code hier nicht einschließen, wie der Kern gemacht wird, um im Laufe der Zeit verbessert zu werden, und diese Antwort ist in der Zeit abgestanden. Ich werde jedoch ein Beispiel dafür geben, wie man es benutzt, damit die Leute sehen können, ob es für ihren Fall nützlich ist. Danke für Ihre Fürsorge :) –

12

Sie können die iOS-Version als String erhalten mit:

[[UIDevice currentDevice] systemVersion] 
+0

Es ist Return-String? –

40

Try this:

Update:

NSArray *vComp = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."]; 

if ([[vComp objectAtIndex:0] intValue] >= 7) { 
    // iOS-7 code[current] or greater 
} else if ([[vComp objectAtIndex:0] intValue] == 6) { 
    // iOS-6 code 
} else if ([[vComp objectAtIndex:0] intValue] > 2) { 
    // iOS-3,4,5 code 
} else { 
    // iOS-1,2... code: incompatibility warnings, legacy-handlers, etc.. 
} 

zurück Code:

NSArray *vComp = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."]; 

if ([[vComp objectAtIndex:0] intValue] == 6) { 
    // iOS-6 code 
} else { 
    // iOS-5, iOS-4... code  
} 

Um sich für einen Umsturz der IOS Verwendung

float sysVer = [[[UIDevice currentDevice] systemVersion] floatValue]; 

if (sysVer > 6.01) { 
    // iOS-6.01+ code 
} else { 
    // prior iOS versions 
} 
+0

Wenn iOS Version 6.0.1 und höher 6 ist, ist Ihr Code immer noch in Ordnung? –

+1

ja. Nur der erste Index wird überprüft –

+0

Dies ist nicht zukunftssicher gegen iOS 7 und höher. Sollte sein 'if ([[vComp objectAtIndex: 0] intValue]> = 6)' – colincameron