为什么Xcode中的控制台无法使用点表示法打印对象的属性?

Tyl*_*aff 4 objective-c uibutton ios lldb

我有一个UIButton,我已经设置了accessibilityLabel.当我尝试使用点表示法打印时,为什么控制台无法找到辅助功能标签属性?

(lldb) po self.closeButton.accessibilityLabel
error: property 'accessibilityLabel' not found on object of type 'UIButton *'
error: 1 errors parsing expression
(lldb) po [self.closeButton accessibilityLabel]
topsecretlabel
Run Code Online (Sandbox Code Playgroud)

Rob*_*ier 5

accessibilityLabel不属于UIButton.这是一种恰好响应的非正式 UIAccessibility协议定义的方法UIButton.lldb这些事情往往比铿锵更严格,并且通过点符号来引用非财产并不严格合法.

它是一个非正式协议的事实实际上使得lldb上的事情变得更加困难.你不能轻易确定UIButton实现协议(它在技术上是一个扩展NSObject).由于这个原因,我们不再使用非正式协议了.