有没有一种方法可以在Swift中使用[self.view recursiveDescription]?我正在尝试使用此方法,但出现以下错误:

'UIView' does not have a member named 'recursiveDescription'

有什么建议?

最佳答案

为了从Swift访问私有(private)/未公开的Objective-C API(例如-recursiveDescription上的UIView方法),您可以执行以下操作:

  • 在定义了私有(private)方法的类上创建新的Objective-C类别(例如UIView)。
  • 如果Xcode询问您有关配置桥接头的信息,请单击Yes。 (如果您的项目中已有桥接头,则将跳过此步骤)。
  • 可以删除类别的实现文件(.m)。
  • 在类别标题中声明私有(private)方法:
    // UIView+Debugging.h
    
    @interface UIView (Debugging)
    - (id)recursiveDescription;
    @end
    

  • 现在,您可以设置一个断点并在LLDB中打印出递归描述:
    po view.recursiveDescription() as NSString
    

    10-08 12:35