2016-08-09 2 views
0

Я использую traitCollectionDidChange для iOS 8, это нормально. В документации написано: Available in iOS 8.0 and later Но я могу построить, а также метод вызывается, даже когда я строю (строить настройки/цель развертывания iOS) для iOS 7.Доступно в iOS 8.0 и более поздних версиях - сборка для iOS 7

Означает ли это, что iOS sdk может построить traitCollectionDidChange для IOS 7?

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

Может быть, это связано с «Levels» с мне нужно очистить: enter image description here

+4

Он может быть построен любыми методами, которые находятся в версии sdk, с которой вы строите, что обычно является самым последним. Если вы попытались вызвать этот метод на iOS 7, он бы разбился. – dan

ответ

0

На мой взгляд, это невозможно, составитель будет сказать вам, что ваша цель развертывания на низком уровне.

Я испытал это самостоятельно, ниже вы можете увидеть результаты: enter image description here

enter image description here

+0

Хм, странно - я не ошибаюсь. Я запускаю Xcode 7.3.1 –

+2

Поскольку вы используете цель-c, и он использует swift – dan

+0

@dan, вы имеете право, objc не обрабатывает доступность, так как это делается быстрым :( – Robert

0

Вы получите ошибку во время запуска на устройстве с прошивкой < 8 на борту. Эта ошибка будет звучать так: unrecognized selector sent to instance.

Вы можете сделать проверку на предмет, если он может обрабатывать ваш селектор, как это:

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

или проверяя IOS версии, установленной на вашем устройстве.

+0

Используя это, как я не могу поместить метод «traitCollectionDidChange» в код. –

+0

Просто addObserver? –

Смежные вопросы