2016-08-09 2 views
0

Ich benutze traitCollectionDidChange für iOS 8 mit ist in Ordnung. Die Dokumentation sagt Available in iOS 8.0 and later Aber ich bin in der Lage zu bauen - und auch die Methode wird aufgerufen, auch wenn ich (Build-Einstellungen/iOS-Bereitstellung Ziel) für iOS 7 zu bauen.Verfügbar in iOS 8.0 und höher - Build für iOS 7

bedeutet das, dass die iOS SDK TraitCollectionDidChange für bauen kann iOS 7?

- (void) traitCollectionDidChange:(UITraitCollection *)previousTraitCollection{ 
    [super traitCollectionDidChange:previousTraitCollection]; 
} 

Vielleicht mit „Levels“, es zu tun hat mit Ich muss klar aus: enter image description here

+4

Es kann mit allen Methoden erstellen, die in der SDK-Version sind, mit der Sie bauen, die in der Regel die neueste ist. Wenn Sie versucht haben, diese Methode auf iOS 7 aufzurufen, würde dies jedoch zum Absturz führen. – dan

Antwort

0

Meiner Meinung nach ist es unmöglich, compilator wird Ihnen sagen, dass Ihre Bereitstellung Ziel zu niedrig ist.

Ich habe es auf meinem eigenen getestet, unter Sie Ergebnisse sehen: enter image description here

enter image description here

+0

Hmm, komisch - ich bekomme keinen Fehler. Ich verwende Xcode 7.3.1 –

+2

Weil Sie objective-c verwenden und er verwendet swift – dan

+0

@dan Sie haben Recht, objc nicht die Verfügbarkeit wie es von swift getan :( – Robert

0

Sie Zeitfehler auf dem Gerät mit iOS < 8 an Bord fahren werden. Dieser Fehler wird wie unrecognized selector sent to instance klingen.

Sie können einen Scheck auf dem Objekt machen, wenn es Ihre Wähler wie damit umgehen kann:

if ([self respondsToSelector:selector]) 
    [self performSelector:selector]; 

oder durch Prüfen iOS-Version auf Ihrem Gerät installiert.

+0

Mit diesem, wie kann ich nicht die "traitCollectionDidChange" -Methode in Code. –

+0

Nur hinzufügenObserver? –

Verwandte Themen