Xcode 5具有一项很棒的新功能,您可以将鼠标悬停在变量名称上,并获得UIColor,UIImage甚至UIBezierPath的可视化表示。

我隐约记得WWDC上的一条评论,开发人员可以遵循某种协议(protocol)或重写任何NSObject子类上的某些方法以参与此新的调试功能。我很乐意将其添加到一堆模型对象中,以帮助我进行调试。有人知道这是否是真实的东西,或者即使他们在将来的版本中暗示了这一点?

不幸的是,Apple将此功能称为“快速查看”,并且由于它们具有另一种称为“快速查看”的技术,我的搜索结果非常嘈杂,我找不到任何有用的信息。

最佳答案

这是Xcode 5.1中的一项新功能,可以在here上找到其文档。简而言之,您将覆盖-(id)debugQuickLookObject并返回已经支持Quick Look的OS类型,例如UIImage或NSAttributedString(documentation中类型的完整列表):

- (id)debugQuickLookObject
{
    UIImage *image = [...];
    // Drawing code here
    return image;
}

对于Swift的:

在撰写本文时,有一些选择,但都不是理想的:
  • 符合CustomPlaygroundQuickLookable,但仅在Playgrounds中有效(并且需要Xcode 7/Swift 2)。
  • 使用与Objective C相同的方法。这要求您的类被标记为@objc(或继承一个Objective-C类),因为调用者依赖选择器。
  • 符合Reflectable,但是需要您提供一个完整的自定义MirrorType以及一堆其他属性以及QuickLookObject(从Xcode 7开始甚至不起作用?)
  • 关于ios - 如何使用Xcode 5视觉调试器快速查看自定义对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21052666/

    10-10 20:45
    查看更多