ios - 为什么 Xcode 中的控制台不能使用点符号打印我的对象的属性?

标签 ios objective-c uibutton 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

最佳答案

accessibilityLabel 不是 UIButton 的属性。它是由非正式 UIAccessibility 协议(protocol)定义的方法,UIButton 恰好响应该协议(protocol)。 lldb 在这些事情上往往比 clang 更严格,并且通过点符号引用非属性在严格意义上是不合法的。

事实上,它是一个非正式的协议(protocol),这实际上让 lldb 上的事情变得更加困难。您无法轻易确定 UIButton 实现了该协议(protocol)(从技术上讲,它是 NSObject 的扩展)。出于这个原因,我们不再经常使用非正式协议(protocol)。

关于ios - 为什么 Xcode 中的控制台不能使用点符号打印我的对象的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23414564/

相关文章:

ios - 应用程序在 iOS 8.1.3 上崩溃,无法重现问题

iphone - 图像存储在 RSS 中?

objective-c - iOS 框架类中的 C 枚举定义

objective-c - 未在 AppDelegate 中调用 applicationShouldTerminate 且未发送 NSApplicationWillTerminateNotification

ios - 在 UITextView Objective-C 中的文本末尾添加更多按钮?

ios - 如何在 UILabel 中的不同字符串上显示两个单独的链接?

ios - 在 UICollectionView 中,顺序会自动更改

ios - addChildViewController 给出 NSException 错误?

ios - Cocoa 应用到 iOS (Objective-C) 应用

objective-c - 以编程方式居中 UIButton