奇怪的问题,我正在使用标准检查来查看设备是否具有 3D Touch。.Available
if statement
它包含在运行 iOS9.1 并在“设置”中启用 3D Touch 的iOS9 检查,该检查正在通过,但未通过。
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)
之外的工作,但if statement
不是实施的好选择!
进一步调查
我在 MainViewController 中测试了代码,它运行良好。这是一个奇怪的情况,我暂时找到了解决方法。