代码之家  ›  专栏  ›  技术社区  ›  Quinn Taylor

为自定义Obj-C对象创建Xcode数据格式化程序包

  •  5
  • Quinn Taylor  · 技术社区  · 17 年前

    帮助简化 some custom Objective-C objects 在Xcode调试器窗口中,我使用 related Apple documentation 以及Xcode的内置数据格式化程序作为指南。

    My custom summary strings /开发人员/库/Xcode/CustomDataView/ 使用Xcode附带的数据格式化程序。然而,我不希望这样做,因为用户可能并没有对该目录的写入权限,并且混合使用自定义格式化程序和内置格式化程序可能会让人困惑。类似地,将我自己的条目添加到 也可以工作,但该文件用于覆盖默认值的用户定义值,其条目会被Xcode调试器GUI中的更改所破坏。我真正想要的是能够将带有我的数据格式化程序的文件放在一个位置,以便Xcode能够识别它们,但如果需要,用户仍然可以选择性地覆盖我的设置(在另一个文件中)。

    问题是,当我创建一个bundle(遵循 this Apple sample code )并将其安装(在 /开发人员/库/Xcode/CustomDataView/ 或任何 库/应用程序支持/Apple/Developer Tools/CustomDataView/ 路径),Xcode无法识别或使用自定义格式化程序。

    关于数据格式化程序包的详细信息的文档有点少(大多数情况下是单个头文件) Xcode.app/Contents/PlugIns/gdbmidegulation.xcplugin ),可能是因为该功能不是Xcode的主要功能之一。;-)任何帮助都将不胜感激。

    2 回复  |  直到 15 年前
        1
  •  4
  •   Quinn Taylor    15 年前

    我最近又回到了这一点,我相信我已经找到了答案。

    我已经知道数据格式化程序包必须在内部包含名为“的属性列表文件” Contents/Resources/*.plist “。但是,要使捆绑真正起作用, 与中的捆绑包同名 目录/MacOS/ foo.c 只要编译并链接二进制文件,文件就足够了。对于Xcode中的stock CFPlugin Bundle项目,我甚至不必触摸Info.plist,只需在目标资源中包含CustomDataViews.plist。

    CHDataStructures.plist )分为以下两个位置之一:

    • ~/Library/Application Support/Developer/Shared/Xcode/CustomDataViews/
    • /Library/Application Support/Developer/Shared/Xcode/CustomDataViews/

    简单的plist文件更小,创建起来更简单,更容易修改。另外,与使用bundle时不同,在添加、删除或修改plist时,我不必重新启动Xcode;仅仅启动一个新的调试会话就足以导致更新新的数据格式化程序。我想我只是创建了一个bundle,因为这是示例代码显示的,但是我无法确定我的场景有什么优势,所以我坚持使用plist。

        2
  •  2
  •   Chris Hanson    17 年前

    从Xcode 2.5和3.0开始,这些东西的位置已经改变,以支持在一个系统上共存多个版本的Xcode。您应该将自定义数据格式化程序放入目录“ Library/Application Support/Developer/Shared/CustomDataViews “在当地( / )或用户( ~

    这个 Shared 在上面的路径中,可以是版本号,例如 3.0 3.1