如何使用Xcode 5可视化debugging器快速查看自定义对象?

Xcode 5有一个伟大的新function,你可以hover在一个variables名称,并得到一个UIColor,UIImage,甚至UIBezierPath的可视化表示。

我隐约记得在WWDC上的一个评论,开发人员可以遵从一些协议或者覆盖任何NSObject子类的一些方法,以便参与这个新的debuggingfunction。 我很想将这添加到一堆我的模型对象来帮助我debugging。 任何人都知道这是否是一个真实的东西,或者即使他们在未来的版本中暗示了它?

不幸的是,苹果把这个function称为“快速浏览”,而且由于他们有另一种叫做“快速浏览”的技术,我的search结果非常嘈杂,我找不到任何有用的东西。

这是Xcode 5.1中的一个新function,可以在这里find它的文档。 简而言之,您重写-(id)debugQuickLookObject并返回已支持Quick Look的操作系统types,例如UIImage或NSAttributedString( 文档中的完整types列表):

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

对于Swift

在写作方面有几个select,没有一个是理想的:

  • 符合CustomPlaygroundQuickLookable,但只适用于Playgrounds(并需要Xcode 7 / Swift 2)。
  • 使用与Objective C相同的方法。这要求您的类标记为@objc(或inheritanceObjective-C类),因为调用者依赖于select器。
  • 符合Reflectable,但是这要求您提供一个完整的自定义MirrorType以及一些其他属性以及QuickLookObject(甚至不像Xcode 7那样工作?)

现在5.1已经正式发布了,我已经发布了这个新的博客文章 。

回答你的问题:是的,这确实是XCode(v5.1)新版本中可用的一个function,可以非常容易地通过子类化一个对象并返回任何你想要在debugging时看到的-(id)debugQuickLookObject方法。