Странная проблема. Я использую стандартную проверку, чтобы увидеть, имеет ли устройство 3D Touch. Он обернут проверкой iOS9, которая проходит, но не передает .Available
if statement
на моем iPhone 6S, который работает под управлением iOS9.1 и имеет функцию 3D Touch, включенную в настройках.Проверка возможности 3D-Touch - 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
~~~~^~~~~~~~~~~~~~~~~~~~
registerForPreviewingWithDelegate(self, sourceView: view)
The работ за пределами if statement
, но не хороший вариант реализации!
ДАЛЕЕ РАССЛЕДОВАНИЯ
Я тестировал код в моем MainViewController и она работала отлично. Это странная ситуация, я нашел работу на данный момент.
Что означает «но не входит в мое утверждение»? – matt
Вопрос обновления, это была поздняя ночь кодирования! – RichAppz
Я до сих пор не знаю, что вы имеете в виду. Я проверил ваш код, и он проходит проверку доступности, выполняет тест «traitCollection.forceTouchCapability» и не выполняет этот тест в хорошем состоянии (потому что у меня нет силы касания). – matt