2016-08-09 99 views
0

我使用的是iOS 12的traitCollectionDidChange,沒問題。該文檔說Available in iOS 8.0 and later但我能夠構建 - 而且即使在iOS 7構建(構建設置/ iOS部署目標)時也調用該方法。在iOS 8.0及更高版本中提供 - 適用於iOS的版本7

這是否意味着iOS sdk能夠構建traitCollectionDidChange for IOS 7?

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

也許它與「級別」與我需要清除的事:enter image description here

+4

它可以使用您正在構建的sdk版本中的任何方法進行構建,這通常是最新的方法。如果你試圖在iOS 7上調用該方法,它會崩潰。 – dan

回答

0

在我看來,這是不可能的,compilator會告訴你,你的部署目標是爲低。

我已經測試過它在我自己的,下面你可以看到的結果: enter image description here

enter image description here

+0

嗯,奇怪 - 我沒有錯誤。我正在運行Xcode 7.3.1 –

+2

因爲你正在使用objective-c並且他正在使用swift – dan

+0

@dan你有權利,objc不能處理可用性,因爲它是由swift完成的:( – Robert

0

您將在設備上搭上運行時錯誤與iOS < 8。 這個錯誤聽起來像是unrecognized selector sent to instance

您可以對對象進行檢查它是否可以這樣處理你的選擇:

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

或檢查安裝在設備上的iOS版本。

+0

使用這個,我怎麼不能在代碼中加入「traitCollectionDidChange」方法 –

+0

只需要addObserver? –

相關問題