我的項目正在使用CircleCI爲單元測試構建,它使用XCode 8。以下代碼崩潰,因爲它使用UIView
的屬性safeAreaLayoutGuide
,它不存在於iOS 10 SDK中,即使在檢查了iOS 11後也是如此。檢查UIView是否有屬性
if #available(iOS 11, *) {
make.top.equalTo(testView.safeAreaLayoutGuide.snp.top)
}
testView
是UIView
。我們在這裏添加一個導航欄的約束。有沒有更好的方法來檢查UIView是否有這個特定的屬性? safeAreaLayoutGuide
不是Optional
。
錯誤消息:類型的UIView'的值沒有任何成員 'safeAreaLayoutGuide'
什麼是錯誤信息? – aaron
使用可用性是在Swift中檢查不同平臺的建議方法。如果你在Objective C中,還有其他的,比如檢查對選擇器的響應或SDk中特定類的存在。但在SWIFT的情況下你完全正確並以標準方式使用#available –
@aaron我添加了錯誤消息 – DesperateLearner