奇怪的問題,我正在使用標準檢查來查看設備是否具有3D Touch。它包裹着iOS9檢查,該檢查正在通過,但未在我的iPhone 6S上傳遞.Available
if statement
,該iPhone 6S正在運行iOS9.1,並且已在設置中啓用3D Touch。3D觸摸功能檢查問題 - Swift
if #available(iOS 9.0, *) {
if traitCollection.forceTouchCapability == .Available {
registerForPreviewingWithDelegate(self, sourceView: view)
constantChange = cstInfoBar.constant + 20
}
}
我設置一個斷點,我收到如下:
(lldb) po traitCollection.forceTouchCapability
error: <EXPR>:1:17: error: 'forceTouchCapability' is only available on iOS 9.0 or newer
traitCollection.forceTouchCapability
^
<EXPR>:1:17: note: add 'if #available' version check
traitCollection.forceTouchCapability
^
<EXPR>:1:17: note: add @available attribute to enclosing instance method
traitCollection.forceTouchCapability
^
<EXPR>:1:17: note: add @available attribute to enclosing extension
traitCollection.forceTouchCapability
^
<EXPR>:9:9: warning: initialization of variable '$__lldb_error_result' was never used; consider replacing with assignment to '_' or removing it
var $__lldb_error_result = __lldb_tmp_error
~~~~^~~~~~~~~~~~~~~~~~~~
的if statement
外的registerForPreviewingWithDelegate(self, sourceView: view)
作品,但沒有實現一個很好的選擇!
進一步調查
我測試的代碼在我MainViewController它完美地工作。這是一個奇怪的情況,我目前找到了一個解決方法。
「但不會進入我的聲明」是什麼意思? – matt
更新問題,這是一個深夜的編碼! – RichAppz
我仍然不知道你的意思。我測試了你的代碼,它通過可用性檢查,'traitCollection.forceTouchCapability'測試,並且測試失敗(因爲我沒有強制接觸)。 – matt