繁体   English   中英

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

[英]How can I Quick Look custom objects with Xcode 5 visual debugger?

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

我依稀记得WWDC上的评论,开发人员可以在任何NSObject子类上遵循某些协议或覆盖某些方法,以便参与这个新的调试功能。 我很乐意将它添加到我的一些模型对象中以帮助我调试。 任何人都知道这是否真实,或者即使他们在未来的版本中暗示过它?

不幸的是,Apple将此功能称为“快速查看”,因为他们有另一项称为“快速查看”的技术,我的搜索结果非常嘈杂,我找不到任何有用的功能。

这是Xcode 5.1中的一项新功能,可以在此处找到相关文档。 简而言之,您覆盖-(id)debugQuickLookObject并返回已支持Quick Look的操作系统类型,例如UIImage或NSAttributedString( 文档中的完整类型列表):

- (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中似乎不起作用?)

现在5.1已经正式发布,我已经发布了这篇关于此事的新博文

回答你的问题:是的,这确实是新版本的XCode(v5.1)中提供的一个功能,可以通过子类化一个对象并在调试时返回你希望看到的内容来非常容易地使用-(id)debugQuickLookObject方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM