我是一个完整的 Xcode/Objective-C/Cocoa 新手,但我学得很快,并且真正开始享受掌握新语言、平台和范例的乐趣。

但有一件事是,使用 Visual Studio 和 R# 这么久了,我有点被重构和完成等编码工具宠坏了,据我所知,Xcode对此的内置支持相当有限东西。

关于这一点,有谁知道是否有任何插件或任何可用于 Xcode 环境的插件,这些插件或其他任何插件可以添加编码助手,例如从类接口定义自动生成实现框架等?

我怀疑没有,但我想还是忍不住要问一下。

有帮助吗?

解决方案

您听起来好像正在寻找三件主要的事情:代码模板、重构工具和自动完成。

好消息是 Xcode 3 及更高版本具有出色的自动完成和模板支持。默认情况下,您必须通过按退出键显式请求完成。(这实际上适用于所有 NSTextViews;试试吧!)如果你想让补全自动出现,你可以去 优先 -> 代码意识 并将弹出窗口设置为几秒钟后自动出现。您应该会发现 C 和 Objective-C 代码的良好补全,以及 C++ 的相当不错的补全。

Xcode 还有一个可供您使用的可靠模板/骨架系统。您可以通过编辑 -> 插入文本宏来查看默认情况下可用的模板。当然,您不想用鼠标插入文本宏;而是用鼠标插入文本宏。这违背了要点。相反,您有两个选择:

  1. 早在 优先,去 按键绑定, ,然后,在 菜单键绑定, ,为您经常使用的宏指定特定的快捷方式。我个人懒得这么做,但我知道很多优秀的 Mac 开发者都这样做
  2. 使用 CompletionPrefix. 。默认情况下,几乎所有模板都有一个特殊的前缀,如果您键入然后按转义键,将导致模板被插入。您可以使用 Control-/ 在完成字段之间移动。

    你可以看到 Xcode 默认宏及其关联的完整列表 CompletionPrefix英语弯曲旋转.

    您还可以添加自己的宏,或修改默认值。为此,请编辑文件 /Developer/Library/Xcode/Specifications/{C,HTML}.xctxtmacro. 。语法即使不是非常友好,也应该是不言自明的。

不幸的是,如果您沉迷于 R#,您会对重构选项感到失望。Xcode 中通过上下文菜单或按 Shift-Apple-J 提供基本重构。从那里,您可以提取和重命名方法,通过类层次结构提升和降级它们,以及一些其他常见操作。不幸的是,Xcode 和任何第三方实用程序都没有提供任何接近 Resharper 的功能,因此在这方面,您目前运气不佳。值得庆幸的是,Apple 已经展示了正在开发的 Xcode 版本,这些版本极大地改进了重构功能,因此希望您不必等待太久,情况就会开始改善。

其他提示

我很高兴地说 JetBrains 决定为 Objective-C 编码人员打造一个像样的 IDE。

它被称为 应用程序代码 它基于 RubyMine 和 Resharper 等其他工具。它不是原生的 Cocoa,但具有大量的原始重构能力。

http://www.jetbrains.com/objc/index.html

我已经开始在我的主要 Objective C 项目中使用它并且我已经爱上它了。它仍处于起步阶段,但对于代码编辑和重构来说,它已经让 Xcode 望尘莫及。

更新

现在已经达到完全可用的速度。我已经全职转向它,但与 Xcode 相比,重构和编码的惊人程度仍然令我震惊。它只是为您处理这么多 - 自动导入,几乎无限的定制。它让 Xcode 看起来像一个玩具。

Xcode 内置了针对 C 和 Objective-C 的重构。只需选择您想要重构的内容,从菜单栏或上下文菜单中选择“重构...”,您就会看到一个包含可用重构和预览区域的窗口。

Xcode 目前没有公共插件 API;如果您希望 Apple 启用特定类型的插件,请在 错误报告者. 。这样苹果就可以统计和跟踪此类请求。

但是,有一些第三方工具,例如 配饰mogenerator (最新版本是 mogenerator 1.10),您可以使用它来加快各种开发任务的速度。Accessorizer 可帮助您为类创建访问器方法,同时 mogenerator 为使用 Xcode 建模工具建模的 Core Data 托管对象类生成更高级的代码。

只是为了让人们知道, 配饰 不仅仅生成访问器(1.0 和 2.0 的属性),它还生成用于持久化非标准属性的 Core Data 代码,以及用于自定义对多关系的 NSSet 访问器。

实际上, 配饰 将帮助您提供 init、keypath、keyed-archiving、索引访问器、无序集合访问器,例如 NSSet、copyWithZone、KVO、密钥验证、单例覆盖、dealloc、setNilForKey、非标准属性持久性(核心数据)、锁定、headerdoc、将方法转换为选择器、NSUndoManager 方法等等。

我在Xcode.app包中找到了一些xtmacro文件:/Developer/Applications/Xcode.app/Contents/PlugIns/TextMacros.xctxtmacro/Contents/Resources

安装的 Xcode 版本3.2.5.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top